游击队员
游击队员
  • 发布:2026-05-22 10:23
  • 更新:2026-05-22 10:35
  • 阅读:22

【报Bug】live-pusher在 android手机上推流只有画面没声音

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: mac 26.1 (25B78)

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: Android

手机系统版本号: Android 14

手机厂商: OPPO

手机机型: oppo findx 3

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<live-pusher v-bind="pusherProps" id='livePusher' ref="livePusher" class="livePusher" :url="pushurl"
orientation="horizontal" :muted="false" :enable-camera="true" :auto-focus="true" :beauty="0" whiteness="0"
aspect="16:9" @statechange="statechange" @netstatus="netstatus" @error="error">
</live-pusher>
data() {
return {

            currentQuality: {  
                value: 'FHD',  
                text: '超清'  
            }  
        }  
    }  

computed: {
pusherProps() {
const base = {};
base.mode = this.currentQuality.value;
return base;
}
}

操作步骤:

设置mode 为有值的情况。不管是FHD 还是其他,推流

预期结果:

Android 14 系统,live-pusher 设置 mode="FHD"(或 HD/SD)时,推流后观众端有画面的同时,也要有声音

实际结果:

Android 14 系统,live-pusher 设置 mode="FHD"(或 HD/SD)时,推流后观众端有画面无声音。

bug描述:

live-pusher 设置 mode="FHD"(或 HD/SD)时推流出现有画无声,推流服务器信息为:10:10:35.138 statechange:, [Number] 1001 , 已经连接rtmp服务器
10:10:35.842 statechange:, [Number] 1002 , rtmp开始推流 ;如果mode 值为空时正常。目前测试了几款手机:荣耀X50、小米14Pro、vivoX100,都出现了一样的问题。华为手机没有问题

2026-05-22 10:23 负责人:无 分享
已邀请:
游击队员

游击队员 (作者)

拉到吧,处理了几年了都

Ask小助手

Ask小助手

需补充平台分类。请提供HBuilderX版本、详细报错信息及示例代码,以便进一步分析。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

好的,我来从 DCloud 官方人员的视角对这个 bug 反馈进行评审。

1. bug 反馈内容完整性分析

  • BUG 描述:描述比较清晰,明确指出了问题现象——live-pusher 在设定 mode="FHD"(或 HD/SD)时,在特定安卓手机上推流有画面无声音,而当 mode 值为空时正常。还附带了推流服务器的连接状态日志,这点非常好,有助于判断推流流程是否正常启动。可以补充一点网络状态日志 netstatus,因为从日志里可以看到音频的码率信息,能更直观地确认是否采集到了音频,当然目前描述已经足够让我们理解问题核心。

  • 代码示例:提供的代码片段展示了组件属性和 computed 属性的用法,能说明问题,但不是完整可运行的 Demo。不过这个问题复现的关键在于原生推流能力与设备/系统的兼容性,因此即使不是一个完整 Demo,我们也能理解问题的配置方式。

  • 复现步骤:描述很直接,“设置mode 为有值的情况”即可复现,并且列出了测试机型(荣耀X50、小米14Pro、vivoX100),同时提到华为手机正常。这对我们排查特定平台兼容性问题非常有帮助。

  • 预期结果与实际结果:预期结果合理,观众端应当同时接收到画面和声音。实际结果只描述了观众端的声音缺失,如果能补充主播端(推流端)的声音监听或日志,比如 netstatus 中的 audioBitrate 是否为 0,那就更完美了。不过核心问题已经暴露得很清楚。

  • 分类信息:提供了 HBuilderX 版本(5.07)、Vue 版本(Vue3)、手机 OS 平台与版本(Android 14)等关键信息,分类信息完整。

综合评价:这是一个质量较高的 bug 反馈,问题定位准确,机型信息和关键操作步骤清晰,对我们复现和定位问题非常有帮助。

2. bug 是否成立分析

这个 bug 是成立的,并且是一个已知问题。我们在 ASK 社区中收到了大量类似的反馈,例如:

  • 问题 218243 反馈了相同的问题,在安卓新系统上 live-pusher 设置 mode 后出现有画面无声音。
  • 问题 147181 的回复中,有开发者明确指出:“如果在标签写mode就会没声音,不写有声音”。
  • 对话知识库中,也有用户交流提到:“去掉mode='hd'就有声音了,万万没想到啊”。

这证实了在部分安卓设备上,对推流分辨率模式进行预定义设置(FHD/HD/SD)时,可能会触发底层音频编码的兼容性问题,导致音频流无法正常推送。

3. 是否涉及基本概念问题

这不属于 basic usage 问题,是原生推流组件在特定安卓系统上的一个具体功能 bug。

处理建议与替代方案

由于该问题在技术上是由于底层音视频编码模块与特定安卓系统/硬件交互导致的,我们作为官方已经注意到并会进行排查和修复。在修复版本发布之前,您可以参考其他开发者的经验,使用以下临时解决方案:

  • 不设置 mode 属性:如您测试的结果一样,将 :mode 值设为空或不绑定该属性,此时 live-pusher 会使用默认的编码参数进行推流,可以规避这个音频丢失问题。您可以保留其他码率、分辨率等细粒度控制项。
  • 考虑使用 nvue 页面:根据官方文档及技术交流中的建议,在 App 端进行直播推流,推荐使用 nvue 页面来实现。nvue 页面性能更好,层级问题处理也更简单,或许能提供更稳定的推流体验。

感谢您的细致反馈,这个问题已被记录,我们会跟进处理。

内容为 AI 生成,仅供参考

要回复问题请先登录注册