Bugfix: MediaPlayer creation might fail for ttsFallback.

Seen on a Fairphone 4.

Part of #963.
This commit is contained in:
Dennis Guse
2022-01-16 16:26:30 +01:00
parent 619b82a23e
commit e1d3b04dd0
@@ -126,10 +126,14 @@ public class VoiceAnnouncement {
} }
if (ttsFallback == null) { if (ttsFallback == null) {
ttsFallback = MediaPlayer.create(context, R.raw.tts_fallback); ttsFallback = MediaPlayer.create(context, R.raw.tts_fallback);
if (ttsFallback == null) {
Log.w(TAG, "MediaPlayer for ttsFallback could not be created.");
} else {
ttsFallback.setAudioStreamType(AUDIO_STREAM); ttsFallback.setAudioStreamType(AUDIO_STREAM);
ttsFallback.setLooping(false); ttsFallback.setLooping(false);
} }
} }
}
public void announce(@NonNull Track track) { public void announce(@NonNull Track track) {
synchronized (this) { synchronized (this) {
@@ -148,9 +152,13 @@ public class VoiceAnnouncement {
} }
if (!ttsReady) { if (!ttsReady) {
if (ttsFallback == null) {
Log.w(TAG, "MediaPlayer for ttsFallback was not created.");
} else {
Log.i(TAG, "TTS not ready/available, just generating a tone."); Log.i(TAG, "TTS not ready/available, just generating a tone.");
ttsFallback.seekTo(0); ttsFallback.seekTo(0);
ttsFallback.start(); ttsFallback.start();
}
return; return;
} }