Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaPlayer通过坏网络从url播放mp3_Android_Mp3_Media Player - Fatal编程技术网

Android MediaPlayer通过坏网络从url播放mp3

Android MediaPlayer通过坏网络从url播放mp3,android,mp3,media-player,Android,Mp3,Media Player,我想用MediaPlayer从url播放mp3,但当缓冲一部分流时,网络断开,当网络再次连接时,我如何继续缓冲剩余的流 mp = MediaPlayer.create(this, Uri.parse("http://media.cmechina.net/mobile/201500011693/02/flv/5.mp3")); mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { @Ov

我想用MediaPlayer从url播放mp3,但当缓冲一部分流时,网络断开,当网络再次连接时,我如何继续缓冲剩余的流

mp = MediaPlayer.create(this, Uri.parse("http://media.cmechina.net/mobile/201500011693/02/flv/5.mp3"));
mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {

    @Override
    public void onBufferingUpdate(MediaPlayer mp, int percent) {
        Log.d("TAG", "percent:  " + percent);
    }
});

mp.setOnErrorListener(new MediaPlayer.OnErrorListener() {

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.d("TAG", "onError === what:  " + what + " extra: " + extra);
        return false;
    }
});

mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {

    @Override
    public boolean onInfo(MediaPlayer mp, int what, int extra) {
        Log.d("TAG", "onInfo   what:  " + what + " extra: " + extra);
        return false;
    }
});

mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {
        Log.d("TAG", "onCompletion is called!");
    }
});

当网络瘫痪时,你应该通过OneError方法知道,当这种情况发生时,你可以保存玩家停止的位置,然后再次尝试流媒体。 就个人而言,我更喜欢从
MediaPlayer
创建实例,然后使用

player.setOnPreparedListener(this);
androidPlayer.setDataSource(URL);
androidPlayer.prepareAsync();
一旦播放机准备就绪并触发
onPrepared(MediaPlayer)
,检查是否有保存的位置,然后调用
player.seekTo(time毫秒)


请记住将监听器设置为onPrepared和onSeekComplete我也有同样的问题,但在我的情况下,我没有收到一个错误的呼叫(是的,它已注册),但在播放已缓冲的数据后,我收到了一个onComplete呼叫。

试试这个,我知道,但无法帮助我,因为我找不到任何关于网络的信息