最近在做用微信小程序实现实时通话,一个页面同时使用了live-pusher和live-player。中途踩了许多坑,在这里做一下总结,希望能帮到大家。
1问题:Live-player播着播着没声音了
原因:对live-pusher进行start, stop,resume等操作时,会停止所有正在播放的live-player的声音。(暂时没发现调用live-pusher的pause会引起这个问题。)
两种解决方案:
一种是避免在live-player播放后操作live-pusher。比如进页面直接开启live-pusher,然后不再操作。官方DEMO就是使用这种方案。
第二种,则是每次操作live-pusher后,都重新调用live-player的play操作(感觉需要短暂的延迟调用)。不过这会引起正在播放的live-player音视频的短暂中断,体验不是太好,所以业务许可的话,第一种更推荐。
2问题:Live-pusher调用start之后,随机出现,返回成功,却并没有视频显示
原因:这种情况下,并不会收到OnPush回调。感觉是跟页面标签的初始化,URL的设置,以及start的调用时机等有关。
解决方案:
在OnLoad的时候,就把标签的Url设置好。wx.createLivePusherContext的调用则要放在onReady之后。如果不能一开始设置好Url,可以在wxml里,用wx:if控制live-pusher标签等到url设置好了再有。
3问题:enable-camera属性似乎无效
解决方案:bool类型的属性,正确写法应该是这样的:[enable-camera="{{enable}}” ]
4问题:调用live-pusher的start之后,没有调用传入的成功,失败,完成的任何回调,没有出现视频
原因:在某次测试中,弹出摄像头的权限申请的时候,拒绝了。这个设置跟微信账号绑定,出现某个微信账号必现失败的时候,可能是这种情况。
解决方案:在微信里,点 发现->小程序,在里面删掉你的应用,重新扫码进入,会重新弹出权限申请,同意即可。
5问题:用wxml用wx:for把一个数组和一组live-player绑定时,多次修改数组内容,界面上的live-player多出一个来。而多次测试,确定数组内容正确
原因:这是我觉得最神奇的一个BUG,也很难清楚的描述到底出现了啥,不过好在找到了解决方法。
解决方案:在.json文件里,加上‘"usingComponents": {}’这一句就可以。
6问题:iPad版微信扫描小程序二维码无效
原因:小程序目前只支持手机。
7问题:live-pusher出现红色报错,说渲染失败,access denied
原因:live-pusher目前只对部分品类的应用开放,且需要在网站设置。设置完如果还不行,尝试下删除小程序重装,退出微信等,会成功的。
总结上面这些问题的解决,觉得最重要的是耐心与细致。
本文作者:妖精不语
原文地址:微信小程序live-pusher那些坑-教程-小程序社区-微信小程序-微信小程序开发社区-小程序开发论坛-微信小程序联盟
声明:本文来源于网络,版权归作者所有,不代表本专栏观点,有什么问题请联系我,谢谢!