如何维护mp.is播放()Android媒体播放器的状态?

时间:2012-12-13 05:47:25

标签: android media-player android-mediaplayer

嗨朋友我有Android媒体播放器的问题。它正在工作但是当我改变屏幕方向时,媒体播放器的控制会丢失,这是最初我能够暂停和停止歌曲,但是一旦屏幕方向改变,歌曲继续但我无法暂停或停止等。 这是我试过的代码(我将歌曲放在原始文件夹中)

setContentView(R.layout.activity_medial_player);
        mp = new MediaPlayer();
playPause = (Button)findViewById(R.id.buttonPlay);
        playPause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mp.isPlaying()) {
                    if(mp!=null) {
                        System.out.println("*******");
                        mp.pause();
                    }
                } else {
                    if(mp!=null) {
                        System.out.println("#######");
                        mp.start();
                    }
                }
            }
        });

startSong= (Button)findViewById(R.id.buttonStart);
        pause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//              mp.pause();
                playSong();
            }
        });

stop = (Button)findViewById(R.id.buttonStop);
        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mp.stop();
            }
        });
}


public void playSong() {
        try {
            mp.reset();
            mp = MediaPlayer.create(MedialPlayer.this, resId);
            mp.start();
        } catch(Exception e) {

        }
    }

在Manifest中我使用:

android:configChanges="orientation|keyboard|keyboardHidden"

任何帮助请...

2 个答案:

答案 0 :(得分:0)

您的API级别是什么?

如果您的应用程序的目标是API级别13或更高级别(由minSdkVersion和targetSdkVersion属性声明),那么您还应该声明“ screenSize ”配置,因为它在设备之间切换时也会发生变化肖像和风景方向。

android:configChanges="orientation|screenSize|keyboard|keyboardHidden"

来源:http://developer.android.com/guide/topics/manifest/activity-element.html

答案 1 :(得分:0)

  public void Play(View v){
        final MediaPlayer md = MediaPlayer.create(this,R.raw.test_cbr);

    Button btn = (Button)findViewById(R.id.button2);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){ 
            if(md.isPlaying()) 
                    md.pause();

            else 
                    md.start();
        }

    }
    );
}