You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Graviton上Cuttlefish AVD的Android Automotive无音频问题咨询

问题定位

从logcat日志看,核心问题出在Android模拟器音频驱动(Goldfish)与AWS Graviton架构的兼容性,具体表现:

  • 反复触发updateSourceMetadata操作失败(Result::NOT_SUPPORTED),这是Goldfish驱动在ARM64(Graviton为ARM架构)环境下的已知限制——该驱动原本为x86模拟器设计,对ARM64的音频元数据更新支持不完善。
  • 音频输出端无有效连接,导致AudioSink stuck,系统被迫切换到系统时钟,音频流无法正常输出。
  • 音频轨道创建时参数不匹配,进一步阻碍音频流初始化。
排查与修复步骤

1. 验证AWS Graviton实例的音频配置

  • 检查CloudFormation模板中是否启用了实例的音频设备支持,确认实例类型是否支持音频输出(部分AWS实例类型默认禁用音频)。
  • 登录实例,执行以下命令查看音频设备状态:
    amixer scontrols
    amixer contents
    
    确认是否有可用的音频输出设备,以及设备是否处于启用状态。

2. 替换音频驱动

Goldfish驱动不适合ARM64生产环境,尝试切换到针对ARM优化的音频驱动:

  • 查看Android Automotive系统的可用驱动模块:
    lsmod | grep audio
    
  • 加载兼容ARM64的音频驱动(如tinyalsa相关模块),并重启音频服务:
    systemctl restart audioserver
    

3. 调整Android音频参数

  • 修改音频轨道创建的参数,解决flags mismatch问题:
    编辑/system/etc/audio_policy_configuration.xml,调整音频输出的flags配置,确保与请求的flags匹配(将输出flags改为00000008,或修改应用侧的请求flags)。
  • 强制音频输出到默认设备:
    audio set-output-device speaker
    

4. 验证音频基础功能

  • 使用tinyalsa工具测试底层音频输出:
    tinymix set 'Playback Path' Speaker
    tinymix set 'Master Playback Volume' 80
    aplay /system/media/audio/ringtones/Default.ogg
    
    如果该命令能播放声音,说明底层音频功能正常,问题出在Android Automotive的上层音频服务配置。

5. 检查Android Automotive的音频区域配置

日志中出现W CAR.AUDIO: getZoneIdForUid userId 10 does not have a zone. Defaulting to PRIMARY_AUDIO_ZONE:0,虽不直接导致无声音,但可能影响音频路由:

  • 编辑/system/etc/car_audio_configuration.xml,确认用户ID 10对应的音频区域配置是否正确,确保音频流能路由到正确的输出设备。

内容的提问来源于stack exchange,提问作者wiswasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:55:53