鍍金池/ 問答/Android  網(wǎng)絡安全/ Android Mediaplayer 拖動進度條快進的問題!

Android Mediaplayer 拖動進度條快進的問題!

項目中播放音頻的功能, 播放網(wǎng)絡音頻, 播放過程中 用戶拖動進度條快進, 此時我想讓播放器直接在用戶拖動的位置播放就行, 但是我現(xiàn)在的問題是:Mediaplayer還沒有緩沖完成用戶就開始拖動了,那進度條立馬會回到起始位置,沒有起到我上面說的那種效果。不知道咋搞,網(wǎng)上一些例子基本沒用,求指點!

回答
編輯回答
半心人

嗯嗯 老哥 這個涉及到的代碼有點多了 不知道咋貼出來合適···, 你的原話:“判斷是否緩存到用戶移動位置時,再進行UI更新” 我看QQ音樂 只要你一拖動 seekBar進度直接顯示的是用戶拖動的位置,而且此時緩沖的位置也是在用戶拖動后的位置開始緩沖了, 就是這塊我不清楚咋實現(xiàn), 下面的方法就是緩沖的回調(diào)方法!
@Override

public void onBufferingUpdate(int percent) {
    if (percent != 0) {
        sbProgress.setSecondaryProgress(sbProgress.getMax() * 100 / percent);
    }
}
2017年2月24日 17:18
編輯回答
爛人

因為你這個沒有代碼貼上來所以我只能提供這這種方式讓你去試試
第一就是你的用戶移動進度是在activity中獲取的話可以通過seekbar的監(jiān)聽來獲取用戶的移動進度傳遞給MediaPlayer的服務,可以通過在mediaPlayer中的緩存監(jiān)聽中獲取緩存進度和用戶進度進行比對進行相關(guān)的操作判斷即可,判斷是否緩存到用戶移動位置時,再進行UI更新

不好意思今天才看到,首先
    if(percent != 0){
        if(此處判斷緩存進度是否大于用戶移動進度){//為true表示已緩存到用戶移動進度位置
            此處進行設(shè)置mediaPlayer的進度
        }else if(用戶是否移動到末尾){
            切換歌曲
        }else{
            當前未緩存到該進度,展示加載中狀態(tài)
        }
    }

不過需要注意的是mediaPlayer播放的網(wǎng)絡歌曲格式問題,不同的手機支持播放的網(wǎng)絡歌曲格式也有不同,有些手機使用meidaPlayer播放某些格式網(wǎng)絡歌曲可能會出現(xiàn)移動進度條無法播放導致切換下一首,建議使用谷歌推出的exoplayer

2017年10月17日 12:43