1***@qq.com
1***@qq.com
  • 发布:2023-05-26 09:11
  • 更新:2024-03-21 19:03
  • 阅读:798

uniapp 播放音频,只有第一次正常播放了

分类:uni-app

uniapp 监听推送的消息,然后播放音频,uni.createInnerAudioContext 只有第一次正常播放了,这是什么原因?求各位大佬支招

uni.onPushMessage((res) => {    
                console.log("收到推送消息:",res) //监听推送消息    
                let innerAudioContext = uni.createInnerAudioContext();  
                innerAudioContext.autoplay = true;  
                innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';  
                innerAudioContext.onPlay(() => {  
                  console.log('开始播放');  
                });  
                innerAudioContext.onError((res) => {  
                  console.log(res.errMsg);  
                  console.log(res.errCode);  
                });  
            });
2023-05-26 09:11 负责人:无 分享
已邀请:
Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

把let innerAudioContext = uni.createInnerAudioContext();写到页面全局里面去,免得每次都重新创建

  • 1***@qq.com (作者)

    写到全局还是不行,我需要监听到消息就要播报音频,现在只能实现第一次播报

    2023-05-26 09:28

  • Diligent_UI

    回复 1***@qq.com: 写到全局你怎么写的

    2023-05-26 09:29

  • 1***@qq.com (作者)

    回复 Diligent_UI: 就是在App.vue文件data中写的

    2023-05-26 09:32

  • 1***@qq.com (作者)

    回复 Diligent_UI: 大佬,还有其他方法嘛,指教一下

    2023-05-26 09:36

  • Diligent_UI

    回复 1***@qq.com: 看不到整体怎么写的

    2023-05-26 09:38

  • 1***@qq.com (作者)

    回复 Diligent_UI: 完整代码在楼下

    2023-05-26 09:41

1***@qq.com

1***@qq.com (作者)

<script>  
    export default {  
        data(){  
            return{  
                innerAudioContext:uni.createInnerAudioContext()  
            }  
        }  
        onLaunch: function() {  
            let that = this  
            uni.onPushMessage((res) => {    
                console.log("收到推送消息:",res) //监听推送消息    
                // let innerAudioContext = uni.createInnerAudioContext();  
                that.innerAudioContext.autoplay = true;  
                that.innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';  
                that.innerAudioContext.onPlay(() => {  
                  console.log('开始播放');  
                });  
                that.innerAudioContext.onError((res) => {  
                  console.log(res.errMsg);  
                  console.log(res.errCode);  
                });  

                uni.createPushMessage({  
                    title:'title',  
                    content:'content',  
                    success(res){  
                        console.log(res)    
                    },    
                    fail(err) {  
                        console.log(err)    
                    }  
                })  
            });  

            uni.getPushClientId({    
                success: (res) => {    
                    let push_clientid = res.cid    
                    console.log('客户端推送标识cid:',push_clientid)    

                },    
                fail(err) {    
                    console.log(err)    
                }    
            })  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        }  
    }  
</script>
Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

把that.innerAudioContext的所有监听函数都写上看看回调,确定每次都接收推送成功了吗

  • 1***@qq.com (作者)

    确定,都执行了开始播放的

    2023-05-26 09:52

  • Diligent_UI

    回复 1***@qq.com: 执行了开始播放,哪里看出不正常呢

    2023-05-26 09:55

  • 1***@qq.com (作者)

    回复 Diligent_UI: 就是没得声音。只有第一次有声音

    2023-05-26 10:05

  • Diligent_UI

    回复 1***@qq.com: 我马上要做一个类似的,我先试试

    2023-05-26 10:33

l***@163.com

l***@163.com

遇到一模一样的问题

4***@qq.com

4***@qq.com

在innerAudioContext.src下面重新调用一下play()就可以了

要回复问题请先登录注册