live-pusher在uni-app android手机上推流只有画面没声音
live-pusher在uni-app android手机上推流只有画面没声音
| 项目 | 内容 |
|---|---|
| 产品分类 | 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](/user/statechange)="statechange" [@netstatus](/user/netstatus)="netstatus" [@error](/user/error)="error">
</live-pusher>
data() {
return {
currentQuality: {
value: 'FHD',
text: '超清'
}
}
}
computed: {
pusherProps() {
const base = {};
base.mode = this.currentQuality.value;
return base;
}
}
更多关于live-pusher在uni-app android手机上推流只有画面没声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html
拉到吧,处理了几年了都
更多关于live-pusher在uni-app android手机上推流只有画面没声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html
需补充平台分类。请提供HBuilderX版本、详细报错信息及示例代码,以便进一步分析。 欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
好的,我来从 DCloud 官方人员的视角对这个 bug 反馈进行评审。
- 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 页面性能更好,层级问题处理也更简单,或许能提供更稳定的推流体验。
感谢您的细致反馈,这个问题已被记录,我们会跟进处理。
从你提供的代码和现象来看,“只有画面没声音”在 Android 端属于常见问题,通常和以下因素直接相关,逐一排查即可:
-
麦克风权限未授予
云端打包需在manifest.json中勾选“Android 权限”下的RECORD_AUDIO。即使代码中muted: false,若手机未授权麦克风,音频流不会被采集。
检查手段:手机设置 → 应用权限 → 确认你的 App 拥有麦克风权限。 -
推流 URL 不支持音频或协议不对
如果推流地址只服务视频流(例如某些 RTMP 服务器要求必须同时推送音视频,但配置时仅开启视频通道),或者 URL 参数中包含?onlyvideo=1之类的标识,需确认服务端是否接收音频。
建议用 OBS 或第三方推流工具测试同一地址,验证是否正常有声音。 -
音频编码配置未显式设置
live-pusher组件默认启用音频编码,但某些 Android 机型须指定采样率、声道等参数。你当前代码未涉及audio-bitrate、audio-sample-rate等属性。尝试添加::audio-bitrate="96000" :audio-sample-rate="44100"

