У меня проблемы с использованием примера androidthings из Google, когда я устанавливаю вывод в MP3, большинство ответов работают хорошо и как и ожидалось, но иногда, например, когда я говорю «Скажи что-нибудь короткое», «Скажи что-нибудь длинное» API помощника ведет себя странно, я получаю слишком много ответов и "разговоров?"
В журнале написано, что он заканчивает разговор много раз, это событие меня уволили много раз ...
2019-05-22 17:28:19.323 17562-17709/com.example.androidthings.assistant
D/AudioTrack: stop() called with 280 frames delivered
2019-05-22 17:28:19.323 17562-17709/com.example.androidthings.assistant
I/AudioTrack: Skip ramp
2019-05-22 17:28:19.333 17562-17562/com.example.androidthings.assistant
I/AssistantActivity: assistant conversation finished
2019-05-22 17:28:19.335 17562-17709/com.example.androidthings.assistant
D/EmbeddedAssistant: Received response: #
См. Прикрепленный журнал: Встроенный помощник журнала
Является ли ошибка API?
Или что-то не так с конфигурацией?
Я использую последний код здесь: androidthings-googleassistant
Проблема не существует, если выходная кодировка установлена в LINEAR16.
EDIT:
Я считаю, что эта часть вызывает проблемы:
if (value.getAudioOut() != null) {
if (mAudioOutSize <= value.getAudioOut().getSerializedSize()){
mAudioOutSize = value.getAudioOut().getSerializedSize();
}
else {
mAudioOutSize = 0;
onCompleted();
}
}
Это был какой-то неприятный способ определения конца ответа помощника, он хорошо работает для PCM, потому что фрагменты всегда были одинакового размера, а последние были меньше, но для MP3 размеры фрагментов не равны, они выглядят случайными.
Есть ли лучший способ определить конец ответа?