一梦不醒
一梦不醒
  • 发布:2026-02-15 12:19
  • 更新:2026-02-15 12:19
  • 阅读:20

【报Bug】推流组件live-pusher在targetSdkVersion版本大于等于30时,推流没有声音

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 64

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 15

手机厂商: OPPO

手机机型: 一加Ace Pro

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

targetSdkVersion设为30以上,勾选LivePusher直播推流,Record录音,videoPlayer视频播放配置,然后进行云打包

<live-pusher   
            id='livePusher'   
            ref="livePusher"   
            class="live_pusher"  
            :style="{ height: videoHeight + 'px' }"  
            :url="liveSetting.url"  
            :mode="liveSetting.mode"  
            enable-camera  
            enable-mic  
            aspect="9:16"  
            :muted="liveSetting.muted"  
            :beauty="liveSetting.beauty"  
            :whiteness="liveSetting.whiteness"  
            @statechange="statechange"   
            @netstatus="netstatus"   
            @error="error"  
            ></live-pusher>  

const liveSetting = reactive({  
        url: '',  
        mode: 'FHD', // 清晰度  
        modeName: '超清',  
        muted: false, // 是否静音  
        beauty: 0, // 美颜  
        whiteness: 0, // 美白  
    })  
// 创建直播上下文  
context.value = uni.createLivePusherContext("livePusher", instance.proxy);  
            context.value.startPreview({  
                success(res) {  
                    console.log("livePusher.startPreview:" + JSON.stringify(res));  
                },  
                fail(err) {  
                                console.log("livePusher.startPreview 失败:", err);  
                            }  
            })  
// 开始直播  
context.value.start({  
            async success(res) {  
                console.log("livePusher.start:" + JSON.stringify(res));  
                isPusher.value = true  
}  
        })
/* android打包配置 */  
            "android" : {  
                "permissions" : [  
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",  
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",  
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",  
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",  
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",  
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",  
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />",  
                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",  
                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",  
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",  
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",  
                    "<uses-feature android:name=\"android.hardware.camera\"/>"  
                ],  
                "minSdkVersion" : 22,  
                "targetSdkVersion" : 30  
            },

预期结果:

观看用户可以听到声音

实际结果:

观看用户可以听不到主播的声音

bug描述:

在勾选LivePusher直播推流,Record录音,videoPlayer视频播放配置云打包后,在摄像头/麦克风/电话权限已授权后,推流组件live-pusher在targetSdkVersion版本为默认版本28时,推流后在观看端是有声音的;当targetSdkVersion>=30时,推流后观看端没有声音。

2026-02-15 12:19 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方评审人员,对该 bug 反馈进行如下评审:

  1. 反馈完整性评价

    • 标题、描述、复现步骤、预期/实际结果、分类信息(HBuilderX 版本、手机系统、Vue 版本、厂商机型等)均已提供,信息基本完整。
    • 但缺少最小可复现 demo页面代码片段(仅给出 manifest 片段),官方人员无法直接运行验证;需用户补充 live-pusher 标签用法及调用代码。
    • 未说明是否已在系统设置里授予麦克风权限、是否使用自定义基座还是标准基座运行,需补充。
  2. Bug 是否成立

    • 在知识库中未检索到 “targetSdkVersion ≥ 30 导致 live-pusher 无声音” 的已知 issue,因此不能立即认定为已知缺陷。
    • Android 10(API 29)以后对后台录音、前台服务权限要求更严格;API 30+ 新增 麦克风前台服务权限 android.permission.RECORD_AUDIO 必须同时在运行时申请并在 manifest 中声明。用户已声明该权限,但未展示运行时申请代码,需确认是否真正拿到权限。
    • 建议用户:
      1. 在 manifest.json → “app-android” → distribute → permissions 中再次确认 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 已勾选;
      2. 在页面中调用 plus.android.requestPermissions(['android.permission.RECORD_AUDIO']) 并在 success 回调里再启动推流;
      3. 使用自定义调试基座重新打包验证。
    • 若仍复现,请提供最小 demo(含 live-pusher 标签及 JS 调用代码)以及 logcat 日志,方便官方进一步定位。
  3. 是否基本概念问题

    • 非 uni-app 平台/概念错误,属于 Android 运行时权限及 targetSdkVersion 适配问题。
    • 暂无替代方案,官方 live-pusher 组件在 Android 端仍推荐使用,但需确保权限与系统限制适配。

结论:
该反馈信息基本完整,但需补充最小可复现 demo运行时权限申请代码日志,才能进一步确认 bug 成立与否。请用户按上述步骤补充后再次提交。

内容为 AI 生成,仅供参考

要回复问题请先登录注册