3

我很难在 android 中使用媒体播放器。基本上,我尝试从我的 SD 卡中播放一首正在下载的歌曲(某种流媒体)。因此,在下载歌曲(20%)后,歌曲开始播放,如果我这样离开它,它可以正常播放直到结束。但是如果我尝试在最后寻找(超过 20%)显然它不会起作用,因为我的寻找位置在 EOF 文件上所以我在一个方法中制作了这段代码

        MediaPlayer mp = new MediaPlayer();
        mp.setDataSource(sFilePath);
        mp.prepare();
        int offset = (progress * mp.getDuration()) / 100;
        if (sCompleted) return;
        sLastSeek = offset;

        if (offset > sMediaPlayer.getDuration()) {
            sMediaPlayer.reset();
            sMediaPlayer.setDataSource(sFilePath);
            sMediaPlayer.prepare();
       } else {
           sMediaPlayer.seekTo(offset);
       }

sMediaPlayer我的媒体播放器在哪里,sFilePath是文件路径。理论上应该涵盖我提出的案例,但是当我搜索文件长度时,播放器被重置(如代码所示)但没有播放,这非常尴尬并且超出了我的能力。

4

1 回答 1

0

也许 mediaPlayer 停止了,因为它到达了歌曲的结尾。重新启动它,以稳定的时间间隔(比如每 5 秒)刷新文件,或者只使用 onCompletionListener。在最后一种情况下,当文件结束时,您可以重新加载文件并继续播放... mp.getCurrentPosition() 以获取它停止播放的位置。

我还注意到您指的是 sMediaPlayer,但您的 MediaPlayer 被定义为 mp。

于 2012-11-29T12:23:13.067 回答