如何停止MediaPlayer流然后重新启动它?Android的

wil*_*kee 8 java android media-player android-mediaplayer

我正在制作一个简单的应用程序来播放在线广播流.我知道如何设置流.到目前为止,这是我的代码.它设置流并播放它.但如果我停下来,我就无法重新开始.我错过了一些明显的东西吗

final MediaPlayer mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource(url);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        mediaPlayer.prepare();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } // might take long! (for buffering, etc)

   streamButton = (ToggleButton) findViewById(R.id.playstopstream);

   streamButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton arg0, final boolean isChecked) {
        // TODO Auto-generated method stub
         new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                if(isChecked)
                {


                    mediaPlayer.start();

                }
                else
                {
                    mediaPlayer.stop();
                    mediaPlayer.reset();



                }
            }
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 11

老问题,但我遇到它寻找这个.只需使用pause停止,然后在重新启动之前执行seekTo(0):

mediaPlayer.seekTo(0);
mediaPlayer.start();
Run Code Online (Sandbox Code Playgroud)

无需每次都准备好录音机.


小智 8

当你打电话mediaPlayer.reset() mediaPlayer进入IDLE状态.要进行播放,您应该在开始之前进行初始化以准备.

您可以在此处查看媒体播放器状态:http: //developer.android.com/reference/android/media/MediaPlayer.html.


小智 7

public void playButton (View view){

        if (isActive == false){
            mediaPlayer.start();
            isActive = true;
        }else{
            mediaPlayer.seekTo(0);
            mediaPlayer.start();
        }
    }
Run Code Online (Sandbox Code Playgroud)

和我一起工作正常。