Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 音频在一段时间后停止播放_Android_Android Mediaplayer - Fatal编程技术网

Android 音频在一段时间后停止播放

Android 音频在一段时间后停止播放,android,android-mediaplayer,Android,Android Mediaplayer,刚开始播放流式音频…开始播放,缓冲区继续,但突然停止。当歌曲到达缓冲区时,音乐停止。按“下一步”将进入嵌套歌曲,但同样的情况也会发生。有什么想法吗 private void startPlay(String file, String name) { Log.i("Selected: ", file); tv_selelctedFile.setText(name); //progressControlSeekbar.setProgres

刚开始播放流式音频…开始播放,缓冲区继续,但突然停止。当歌曲到达缓冲区时,音乐停止。按“下一步”将进入嵌套歌曲,但同样的情况也会发生。有什么想法吗

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;
    }
你可以试着做的是 使用侦听器,而不是直接调用

 mediaPlayer.prepare();//use preapareAsync()
 mediaPlayer.start(); // dont call it here.
调用mediaplayer的
OnPreparedListener()
,并在
onPrepared()
中使用
mediaplayer.start()

如果没有帮助,只需实现Media player的所有侦听器,如
onComplete
onError()
,并检查在Media player突然停止播放时调用哪个侦听器

希望能有帮助