Android Automotive нет звука в Cuttlefish AVD

Вопрос или проблема

Я запускаю экземпляр Android Automotive на AWS Graviton, используя AWS CloudFormation. Я заметил, что звука нет, что бы я ни делал. Посмотрев в logcat, я вижу следующее:

10-29 04:25:28.328  7171  7171 D CAR.AUDIO.KS: Запуск звукового устройства по адресу
10-29 04:25:28.328  7171  7171 I CAR.AUDIO.KS.AudioPlayer: Запрос фокуса для использования 1
10-29 04:25:28.329   584  2726 I MediaFocusControl: requestAudioFocus() от uid/pid 1010028/7171 AA=USAGE_MEDIA/CONTENT_TYPE_UNKNOWN clientId=android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be callingPack=com.google.android.car.kitchensink req=2 flags=0x0 sdk=32
10-29 04:25:28.329  1422  1422 W CAR.AUDIO: getZoneIdForUid userId 10 не имеет зоны. Устанавливаем по умолчанию PRIMARY_AUDIO_ZONE:0
10-29 04:25:28.330  1422  1422 I CarAudioFocus: Оценка запроса GAIN_TRANSIENT для клиента android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be с использованием USAGE_MEDIA
10-29 04:25:28.330  1422  1422 I CarAudioFocus: Сканирование держателей фокуса...
10-29 04:25:28.330  1422  1422 I CarAudioFocus: Сканирование тех, кто уже потерял фокус...
10-29 04:25:28.330  1422  1422 I CarAudioFocus: AUDIOFOCUS_REQUEST_GRANTED
10-29 04:25:28.330  1422  1422 I CarAudioFocus: onAudioFocusRequest для клиента android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be с типом увеличения GAIN_TRANSIENT привел к REQUEST_GRANTED
10-29 04:25:28.330  7171  7171 I CAR.AUDIO.KS.AudioPlayer: MediaPlayer получил фокус для использования 1
10-29 04:25:28.330  7171  7171 I CAR.AUDIO.KS.AudioPlayer: doStart audio
10-29 04:25:28.339  7171  7171 D CAR.AUDIO.KS.AudioPlayer: doStart предпочтительный адрес устройства: Динамик
10-29 04:25:28.343   501  7230 D CCodecConfig: прочитанный медиа-тип: audio/mpeg
10-29 04:25:28.345   501  7230 D CCodecConfig:   строковый input.media-type.value = "audio/mpeg"
10-29 04:25:28.345   501  7230 D CCodecConfig:   строковый output.media-type.value = "audio/raw"
10-29 04:25:28.347   501  7230 D CCodec  :   строка mime = "audio/mpeg"
10-29 04:25:28.347   501  7230 D CCodec  :   строка mime = "audio/raw"
10-29 04:25:28.356  2628  2628 W AudioFlinger: createTrack_l(): несоответствие между запрашиваемыми флагами (00000008) и выходными флагами (00000002)
10-29 04:25:28.356  2628  2628 D AudioFlinger: Клиент установил notificationFrames на 11224 для frameCount 22448
10-29 04:25:28.356  2628  2628 D AF::TrackHandle: OpPlayAudio: track:58 usage:1 не изглушён
10-29 04:25:28.358  2628  2661 E AudioFlinger: нет блокировки активации для обновления, но система готова!
10-29 04:25:28.359  2627  2641 E [email protected]: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:377 ошибка: Result::NOT_SUPPORTED
10-29 04:25:28.359   501  7228 D AudioTrack: getTimestamp_l(9): время простоя устройства исправлено с использованием текущего времени 9964178094107
10-29 04:25:28.382  2627  2641 E [email protected]: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:377 ошибка: Result::NOT_SUPPORTED
10-29 04:25:28.382  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(110)
10-29 04:25:28.641  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:28.900  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(230)
10-29 04:25:29.147   501  7228 W NuPlayerRenderer: AudioSink завис. ВЫ ПОДКЛЮЧЕНЫ К ЗВУКОВОМУ ВЫХОДУ? Переключение на системные часы.
10-29 04:25:29.159  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:29.418  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:29.675  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:29.933  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:30.214  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(253)
10-29 04:25:30.472  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:30.729  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:30.987  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:31.245  2628  2661 D AudioFlinger: mixer(0xb40000700bf62a60) конец ограничения: время ограничения(231)
10-29 04:25:31.342  7171  7171 I CAR.AUDIO.KS.AudioPlayer: остановка
10-29 04:25:31.347  2627  2641 E [email protected]: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:377 ошибка: Result::NOT_SUPPORTED
10-29 04:25:31.356   584  1366 I MediaFocusControl: abandonAudioFocus() от uid/pid 1010028/7171 clientId=android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be
10-29 04:25:31.357  1422  1422 W CAR.AUDIO: getZoneIdForUid userId 10 не имеет зоны. Устанавливаем по умолчанию PRIMARY_AUDIO_ZONE:0
10-29 04:25:31.357  1422  1422 I CarAudioFocus: onAudioFocusAbandon для клиента android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be
10-29 04:25:31.357  1422  1422 I CarAudioFocus: removeFocusEntry android.media.AudioManager@86fa479com.google.android.car.kitchensink.audio.AudioPlayer$1@a3c15be

В чём именно проблема и как я могу узнать больше?
Я чувствую себя очень застрявшим.. Спасибо!

Ответ или решение

Проблема отсутствия звука в Android Automotive на Cuttlefish AVD может быть связана с несколькими аспектами, судя по предоставленным логам. Давайте разберем возможные причины и подходы для их устранения.

1. Анализ логов и выявление проблемы

Логи, которые вы предоставили, показывают несколько ключевых моментов, на которые стоит обратить внимание:

  • Получение фокуса на аудио: Логи показывают, что приложение (в данном случае AudioPlayer) запрашивает фокус и получает его (AUDIOFOCUS_REQUEST_GRANTED). Это значит, что система позволяет приложению воспроизводить звук.

  • Определение зоны: getZoneIdForUid userId 10 does not have a zone — это предупреждение указывает на то, что для указанного пользователя не была определена зона аудио. Это может привести к проблемам с маршрутизацией звука.

  • Ошибка с метаданными источника: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:377 failure: Result::NOT_SUPPORTED указывает на то, что устройство не поддерживает обновление метаданных источника. Это также может быть связано с тем, что эмулятор не настроен для обработки звука должным образом.

  • Проблемы с выводом аудио: AudioSink stuck. ARE YOU CONNECTED TO AUDIO OUT? может означать, что в эмуляторе нет корректно настроенного выходного аудиоустройства. Это один из наиболее вероятных источников проблемы.

2. Возможные решения

Примечания к решению проблемы:

Проверка конфигурации эмулятора

Убедитесь, что параметры аудио настроены в эмуляторе Cuttlefish правильно:

  • Используйте -audio ключ для запуска эмулятора и убедитесь, что музыка или аудио воспроизводится на уровне системы.

Настройка виртуального звукового устройства

Поскольку Cuttlefish является виртуальным устройством, его важно правильно настроить:

  • Проверьте, что в конфигурации AVD поддерживается вывод аудио.
  • Возможно, стоит попробовать разные настройки для audio в конфигурации AVD.

Установка дополнительных библиотек

Если вы используете AVD на AWS, убедитесь, что у вас установлены все необходимые зависимости и библиотеки, которые могут понадобиться для обработки звука.

Обновление AVD

Проверьте, нет ли более новых версий софта или обновлений для SDK, которые могут исправить проблемы с аудио.

3. Рекомендации по дальнейшей диагностике

Чтобы углубить диагностику проблемы, выполняйте следующие шаги:

  • Отладка через ADB: Используйте команды ADB (Android Debug Bridge) для проверки состояния аудиосистемы на эмуляторе. Это может помочь выявить другие предупреждения или ошибки.

  • Запуск других аудио-приложений: Проверьте, есть ли звук в других приложениях на эмуляторе. Это поможет определить, остается ли проблема в рамках вашего приложения или связано с настройками AVD.

  • Логирование событий AudioManager: Расширьте логирование для AudioManager, чтобы понимать, как происходит запрос и предоставление аудио фокуса в системе.

Заключение

Отсутствие звука в Cuttlefish AVD может быть вызвано настройками виртуального устройства, конфликтами в аудио фокусе или отсутствием корректной маршрутизации звука. Следуйте рекомендациям, приведенным выше, чтобы устранить возникшие проблемы. После выполнения всех предложенных шагов, пожалуйста, обратитесь за дополнительной помощью, если проблема не будет решена.

Оцените материал
Добавить комментарий

Капча загружается...