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

Android RTSP推流到VLC时MediaRecorder启动失败-38且音频无法播放

你的音频无法播放的核心原因是音频采集环节根本没有启动成功,日志中E/MediaRecorder: start failed: -38是明确的报错信息,MediaRecorder启动音频录制失败,自然不会有音频数据发送到RTP打包器,VLC也就无法解析到音频内容。

你可以按以下顺序排查解决:

  • 首先检查权限配置:Android 6.0及以上版本需要动态申请RECORD_AUDIO权限,可先到应用设置页面确认该权限已经开启。如果你使用的是系统内录音频源,Android 10及以上还需要CAPTURE_AUDIO_OUTPUT权限,该权限仅支持系统签名应用或者通过adb授权获取,普通第三方应用默认无法申请。
  • 修正MediaRecorder的冲突参数:
    你使用的AMRNB编码有严格的参数限制,参数不匹配会直接导致启动失败:
    1. 输出格式必须设置为OutputFormat.AMR_NB,不能混用MP4、MPEG_4等视频容器格式
    2. AMRNB仅支持8kHz采样率,确认mQuality.samplingRate的取值为8000,不能设置更高的采样率
    3. AMRNB的合法比特率范围是4.75kbps~12.2kbps,你的日志显示当前请求的音频比特率为32kbps,远远超出编码支持范围,这是触发启动失败的最常见原因,将mQuality.bitRate修改为12200及以下即可
  • 排查资源占用:确认当前没有其他应用正在占用麦克风或者音频输出通道,占用音频硬件资源会直接导致MediaRecorder启动失败,测试前可关闭所有后台录音、通话类应用重试。
  • 后续验证:MediaRecorder启动成功后,需要检查RTSP返回的SDP信息中是否正确声明了音频轨的编码格式为AMRNB、采样率8kHz、单声道,VLC依靠SDP信息解析音频流,配置错误的话即使有音频数据也无法正常播放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:01