一段时间后音频停止流式传输

时间:2012-03-02 05:24:18

标签: android android-mediaplayer

刚开始播放音频...开始播放,缓冲区继续播放,但突然停止。当歌曲赶上缓冲区时,音乐会停止。按下接下来的巢歌曲,但同样的事情发生。任何想法?

private void startPlay(String file, String name) 
    {
        Log.i("Selected: ", file);

        tv_selelctedFile.setText(name);

        //progressControlSeekbar.setProgress(0);

        int maxVolume = mediaPlayer.getDuration();
        int curVolume = mediaPlayer.getCurrentPosition();

        progressControlSeekbar.setMax(maxVolume);
        progressControlSeekbar.setProgress(curVolume);
        progressControlSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            public void onStopTrackingTouch(SeekBar seekBar) 
            {
                isMoveingSeekBar = false;
            }
            public void onStartTrackingTouch(SeekBar seekBar) 
            {
                isMoveingSeekBar = true;
            }
            public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) 
            {
                if(isMoveingSeekBar)
                {
                    mediaPlayer.seekTo(progress);
                    Log.i("OnSeekBarChangeListener","onProgressChanged");
                }
            }
        });     

        mediaPlayer.stop();
        mediaPlayer.reset();

        try {
            mediaPlayer.setDataSource(file);
            mediaPlayer.prepare();
            mediaPlayer.start();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        progressControlSeekbar.setMax(mediaPlayer.getDuration());
        playButton.setImageResource(android.R.drawable.ic_media_pause);

        updatePosition();

        isStarted = true;
    }

1 个答案:

答案 0 :(得分:0)

你可以尝试做的是 使用监听器而不是直接调用

 mediaPlayer.prepare();//use preapareAsync()
 mediaPlayer.start(); // dont call it here.

拨打媒体播放器的OnPreparedListener(),然后在onPrepared()中使用mediaplayer.start()

如果这没有帮助,只需实现媒体播放器的所有监听器,如onComplete onError(),并检查当媒体播放器突然停止播放时调用哪一个

希望它有所帮助。