android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

【求助】关于Mediaplayer快进的问题!

Open DevXue opened this issue 7 years ago • 4 comments

项目中播放音乐用了Mediaplayer来实现的, 现在有个问题就是, 打开一首歌在播放,此时他在缓冲中,缓冲好之后才会播放声音,然而用户打开一首歌 没等缓冲好,直接拖动进度条到中间的位置, 这个时候虽然位置到了中间了,但是 缓冲好之后 又到了起始位置开始播放声音了··· 我的需求就是 和QQ音乐 网易音乐一样, 拖动到中间 那么就从中间开始缓冲,从中间开始播放就行, 求解 这个不知道怎么实现!! 网上找了好多 都不行···

DevXue avatar Jan 17 '18 01:01 DevXue

缓冲进度监听

cervy avatar Jan 20 '18 04:01 cervy

@CoXier 是播放网络音乐! 这个我试过,如果先判断 prepared 会出现这种情况: 如果没有缓冲好,用户就要拖动进度条了,那么进度条直接就跑到起始位置了, 不像我上面说的 虽然拖动到中间了,但是缓冲好之后 又回到起始位置, 监听prepared后 就直接回到起始位置了····

DevXue avatar Jan 22 '18 07:01 DevXue

看不惯上面的装逼··························· 试试这样看行不,另外建议用exoPlayer 谷歌官方的···

if(percent != 0){ if(此处判断缓存进度是否大于用户移动进度){//为true表示已缓存到用户移动进度位置 此处进行设置mediaPlayer的进度 }else if(用户是否移动到末尾){ 切换歌曲 }else{ 当前未缓存到该进度,展示加载中状态 } }

Jackma1879 avatar Jan 23 '18 12:01 Jackma1879

你可以记录seekTo的位置,然后在onPrepared中调用start后马上seekTo到你之前记录的位置

Mrnoknow avatar Jan 26 '18 04:01 Mrnoknow