Add AudioAttributes.

This commit is contained in:
Sven Zirkmann 2019-07-24 08:56:38 +02:00
parent 1e27dfa53d
commit b1e958d592
2 changed files with 18 additions and 1 deletions

View file

@ -1,7 +1,9 @@
package net.osmand.plus.voice;
import android.media.AudioAttributes;
import android.media.MediaPlayer;
import android.os.Build;
import net.osmand.PlatformUtil;
import net.osmand.plus.ApplicationMode;
@ -170,6 +172,12 @@ public class MediaCommandPlayerImpl extends AbstractPrologCommandPlayer implemen
try {
log.debug("Playing file : " + file); //$NON-NLS-1$
mediaPlayer.reset();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE)
.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
.build());
}
mediaPlayer.setAudioStreamType(streamType);
mediaPlayer.setDataSource(file.getAbsolutePath());
mediaPlayer.prepare();

View file

@ -4,13 +4,15 @@ import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.media.AudioAttributes;
import android.net.Uri;
import android.os.Build;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener;
import android.support.v7.app.AlertDialog;
import android.widget.Toast;
import net.osmand.PlatformUtil;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
@ -127,6 +129,13 @@ public class TTSCommandPlayerImpl extends AbstractPrologCommandPlayer {
}
log.debug("ttsRequests="+ttsRequests);
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,""+System.currentTimeMillis());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mTts.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE)
.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
.build());
}
mTts.speak(bld.toString(), TextToSpeech.QUEUE_ADD, params);
// Audio focus will be released when onUtteranceCompleted() completed is called by the TTS engine.
} else if (ctx != null && vrt.isMute()) {