本文主要跟大家分享微信小程式live-pusher那些坑,最近在做用微信小程式實現即時通話,一個頁面同時使用了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疑惑解答的詳細內容。更多資訊請關注PHP中文網其他相關文章!