欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解小程序BackgroundAudioManager踩坑之旅

 更新時間:2019年12月08日 08:28:47   作者:打代碼的橘子  
這篇文章主要介紹了詳解小程序BackgroundAudioManager踩坑之旅,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

由于貴公司業(yè)務發(fā)展需要,切圖仔開始寫起了小程序啦(興奮地搓小手手)

貴公司是知識付費平臺,需要音頻播放課程,同時希望用戶在退出小程序后依然可以聽課。在這種情況下,小程序的API——BackgroundAudioManager就派得上用場啦。

在看完官方文檔,信心滿滿地寫完提測后,測試小姐姐找出的bug比我的工資還多?。。?#128557;😭😭)因此有了本篇文章。

本篇涉及到的幾個坑(以下BAM為BackgroundAudioManager的縮寫)

  • 一個誤區(qū)
  • BAM.onStop() 與 BAM.onEnded() 的坑
  • BAM.seek() 與 BAM.onSeeked() 的坑
  • BAM.onTimeUpdate() 的坑
  • 在音頻頁退出小程序暫停音頻后返回小程序的坑

一個誤區(qū)

  • BAM.onCanplay()是監(jiān)聽背景音頻進入可播放狀態(tài)事件,并不代表在該事件中,音頻就為播放狀態(tài)。

BAM.onStop() 與 BAM.onEnded() 的坑

在BAM.onStop() 與 BAM.onEnded()的回調事件中,audio.src為空

BAM.onStop(): 當再次播放音頻時,將data數(shù)據(jù)中音頻的src賦值給BAM,然后在onTimeUpdate()事件內跳轉到上次暫停的時間點(記得本地緩存音頻播放時間哦~)

BAM.onEnded():在BAM.onEnded()回調函數(shù)中,將data數(shù)據(jù)中音頻的src賦值給BAM,然后在onTimeUpdate()事件內暫停音頻

BAM.seek() 與 BAM.onSeeked() 的坑

  • 設置src后立即seek()失效

seek操作最好放在BAM.onTimeUpdate事件中。 類似HTML的Audio元素的ontimeupdate方法,建議將currentTime的改變都在該方法中進行。

  • 暫停狀態(tài)下跳轉到指定位置,在onSeeked()回調中,Android的currentTime是跳轉前的時間,而IOS是跳轉后的時間

雖然在onSeeked()回調函數(shù)中,Android獲取currentTime為跳轉前的時間,但若開始播放,還是從指定位置開始播放。所以若有暫停連續(xù)跳轉并需要獲取currentTime的需求,可在onSeeked()回調函數(shù)中判斷若為Android并且為暫停狀態(tài)時播放。

  • 開發(fā)者工具不走onSeeked()回調

如果在onSeeked()回調里面有特殊操作,記得區(qū)分是否是開發(fā)者工具~

BAM.onTimeUpdate() 的坑

在退出小程序后,Android與IOS均不走onTimeUpdate()事件

因此若在onTimeUpdate()事件內實時緩存音頻的播放時長會導致在退出小程序暫停后返回拿到的音頻緩存時間是退出前的時間。可以在onPause()與onEnded()事件中記錄暫停時的音頻播放時長。(在onTimeUpdate()事件內所做的操作可根據(jù)實際情況考慮節(jié)流哦~)

在音頻頁退出小程序暫停音頻后返回小程序的坑

IOS:BAM.src為空

Android:BAM.src不為空,但play()失敗

這點與第二點的處理方式相同。當在音頻頁退出小程序暫停音頻后返回,進入onShow()事件時,將data數(shù)據(jù)中音頻的src賦值給BAM,然后在onTimeUpdate()事件內跳轉到上次暫停的時間點

原本以為可以寫的會有很多,最后寫下來也就幾個點,表達的不也是很清晰,就當學習日記吧

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • js實現(xiàn)非常棒的彈出div

    js實現(xiàn)非常棒的彈出div

    這篇文章主要為大家詳細介紹了js實現(xiàn)非常棒的彈出div,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-10-10
  • 一文全面解析JS中的this綁定規(guī)則

    一文全面解析JS中的this綁定規(guī)則

    寫過JavaScript的都知道,JS中的this相對來講是比較難以捉摸的,尤其在一些復雜的場景下的指向總是讓人摸不著頭腦,所以這篇文章我們就來系統(tǒng)的學習和研究一下this的綁定規(guī)則,需要的朋友可以參考下
    2024-04-04
  • JS實現(xiàn)簡易留言板特效

    JS實現(xiàn)簡易留言板特效

    這篇文章主要為大家詳細介紹了JS實現(xiàn)簡易留言板特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Base64編碼加密JS代碼網(wǎng)頁版

    Base64編碼加密JS代碼網(wǎng)頁版

    Base64編碼加密JS代碼網(wǎng)頁版,在文本框中輸入任意字符串,即可將該字符串按Base64編碼進行加密,也可將任意Base64編碼的字符解密顯示正常值
    2013-03-03
  • js調用設備攝像頭的方法

    js調用設備攝像頭的方法

    這篇文章主要為大家詳細介紹了js調用設備攝像頭的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • javascript實用小函數(shù)使用介紹

    javascript實用小函數(shù)使用介紹

    本文整理了一些實用小函數(shù)如阻止輸入非數(shù)字,backspace除外;限制輸入最大字符串長度等,需要的朋友可以了解下
    2013-11-11
  • JavaScript事件學習小結(三)js事件對象

    JavaScript事件學習小結(三)js事件對象

    這篇文章主要介紹了JavaScript事件學習小結(三)js事件對象的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • LBS blog sql注射漏洞[All version]-官方已有補丁

    LBS blog sql注射漏洞[All version]-官方已有補丁

    LBS blog sql注射漏洞[All version]-官方已有補丁...
    2007-08-08
  • js實現(xiàn)二級聯(lián)動簡單實例

    js實現(xiàn)二級聯(lián)動簡單實例

    這篇文章主要為大家詳細介紹了js實現(xiàn)二級聯(lián)動簡單實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JavaScript制作簡易計算器(不用eval)

    JavaScript制作簡易計算器(不用eval)

    這篇文章主要為大家詳細介紹了JavaScript制作簡易計算器的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論