|
最近在做(zuo)用(yong)微信小程序實現(xian)實時通(tong)話,一個頁面同時使用(yong)了(le)live-pusher和(he)live-player。中途踩了(le)許多坑,在這(zhe)里做(zuo)一下總(zong)結,希望能幫到大家。 1問題:Live-player播著播著沒聲音了。原因:對(dui)live-pusher進(jin)行start, stop,resume等操作時,會(hui)停止所有(you)正在播(bo)放的(de)live-player的(de)聲音。(暫時沒(mei)發(fa)現調用live-pusher的(de)pause會(hui)引起這個問題(ti)。) 兩種解決方案: 一種是避免(mian)在live-player播(bo)放后操作live-pusher。比(bi)如進頁面直(zhi)接(jie)開啟live-pusher,然(ran)后不再操作。官方DEMO就是使用(yong)這種方案。 第二(er)種,則是(shi)每次操作live-pusher后,都重新調用live-player的(de)(de)(de)play操作(感覺需要短(duan)暫(zan)(zan)的(de)(de)(de)延遲調用)。不過這會引(yin)起正在(zai)播(bo)放的(de)(de)(de)live-player音視頻(pin)的(de)(de)(de)短(duan)暫(zan)(zan)中斷,體驗不是(shi)太好,所以業務(wu)許可的(de)(de)(de)話,第一(yi)種更推薦。 2問題:Live-pusher調用start之后,隨機出現,返回成功,卻并沒有視頻顯示原因:這種(zhong)情況(kuang)下,并不(bu)會(hui)收到(dao)OnPush回調。感覺是跟頁面標簽的初始化,URL的設置,以及start的調用時(shi)機等有(you)關。 解決(jue)方(fang)案: 在OnLoad的(de)時候,就把標(biao)(biao)簽的(de)Url設(she)(she)置好。wx.createLivePusherContext的(de)調用(yong)則(ze)要放在onReady之后(hou)。如(ru)果不能一開始設(she)(she)置好Url,可(ke)以在wxml里,用(yong)wx:if控(kong)制live-pusher標(biao)(biao)簽等到url設(she)(she)置好了(le)再有。 3問題:enable-camera屬性似乎無效。解決方案:bool類型的(de)(de)屬性,正(zheng)確寫法(fa)應該是(shi)這樣的(de)(de):[enable-camera="{{enable}}” ] 4問題:調用live-pusher的start之后,沒有調用傳入的成功,失敗,完成的任何回調,沒有出現視頻。原因(yin):在某(mou)次測試(shi)中(zhong),彈(dan)出攝像頭的(de)權限申(shen)請的(de)時(shi)候(hou)(hou),拒(ju)絕了。這(zhe)個(ge)設置跟微信賬(zhang)號(hao)綁定,出現(xian)某(mou)個(ge)微信賬(zhang)號(hao)必現(xian)失敗的(de)時(shi)候(hou)(hou),可能是(shi)這(zhe)種情況。 解決方案:在微信里(li),點 發現->小程序,在里(li)面刪掉你的應用,重(zhong)新掃碼進(jin)入,會重(zhong)新彈出(chu)權限申(shen)請,同意即可。 5問題:用wxml用wx:for把一個數組和一組live-player綁定時,多次修改數組內容,界面上的live-player多出一個來。而多次測試,確定數組內容正確。原因:這是我覺得最神(shen)奇的一個(ge)BUG,也很難(nan)清楚的描述到(dao)底(di)出現了(le)啥(sha),不過(guo)好在找到(dao)了(le)解決方(fang)法。 解決方案(an):在.json文件(jian)里,加上‘"usingComponents": {}’這一句就可以。 6問題:iPad版微信掃描小程序二維碼無效原因:小(xiao)程(cheng)序目(mu)前只(zhi)支持(chi)手機(ji)。 7問題:live-pusher出現紅色報錯,說渲染失敗,access denied.原因(yin):live-pusher目前(qian)只對部分品(pin)類的應用開放,且需要在網站設(she)置(zhi)。設(she)置(zhi)完如果還(huan)不行,嘗試下刪除小程序重裝,退出微信等,會成功的。
總結上面(mian)這些問題(ti)的(de)解決,覺得最(zui)重要的(de)是耐心與細(xi)致(zhi)。 |