2

嗨朋友们,我对 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) {

        }
    }

在清单中我使用:

android:configChanges="orientation|keyboard|keyboardHidden"

任何帮助请...

4

2 回答 2

0

您的 API 级别是多少?

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

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

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

于 2012-12-13T06:56:06.093 回答
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();
        }

    }
    );
}
于 2014-02-11T05:54:27.727 回答