У меня есть приложение, в котором пользователь может использовать наушники.
Это работало с более старым API (протестировано с версией 15 на Samsung S2)
Я обновил до последней версии API (minSdkVersion 21, targetSdkVersion 28)
Я обновил все устаревшие API.
Я ставлю в очередь наушник, но он никогда не играет:
Код инициализации
mTTS = new TextToSpeech(context, onInitListener);
mParams = new Bundle();
mParams.putLong(TextToSpeech.Engine.KEY_PARAM_STREAM, AudioManager.STREAM_NOTIFICATION);
OnInitListener
int rc;
for (String key: mSounds.keySet()) {
File f = new File(mSounds.get(key));
if (!f.canRead() {
PersistLog.w(TAG, "Can't read earcon:" + f.getAbsolutePath());
} else {
rc = mTTS.addEarcon(key, f);
}
}
mTTS.setOnUtteranceProgressListener(ProgressListener)
Существует ключ: "test" , указывающий на файл mp3.
Некоторые Сервисный код:
{
int rc;
rc = mTTS.speak("Begin Test", TextToSpeech.QUEUE_ADD, mParams, "Txt");
rc = mTTS.playSilentUtterance(2000, TextToSpeech.QUEUE_ADD, "Delay");
rc = mTTS.playEarcon("test", TextToSpeech.QUEUE_ADD, mParams, "Earcon")
rc = mTTS.speak("End Test", TextToSpeech.QUEUE_ADD, mParams, "Txt");
}
ProgessListener - регистрирует сообщения о методах onStart и onDone.
Когда я выполняю код (Andoid 8 на Samsung S7), я получаю все коды возврата успеха для функций addEarCon, speek, playSilentUtteracnce и playEarcon.
Прослушиватель прогресса показывает обработку (Start, Stop) «Txt», «Delay», «Txt»
Задержка сработала правильно. Но наушник не играл.
Есть идеи?