【发布时间】:2016-09-20 15:26:07
【问题描述】:
我正在构建一个简单的应用程序,当程序启动文本闪烁并播放歌曲时。当我旋转手机时,它应该会改变风景并重新播放歌曲。我可以做第一部分,但是当我改变风景时它会崩溃。如果我删除 onPause 方法,它会起作用,但是当我这样做时,音乐会继续在后台播放,并且它也会从头开始。同时播放两首歌曲。
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ourSong = MediaPlayer.create(this,R.raw.fixyou);
ourSong.start();
blinkText();
}
@Override
protected void onPause(){
super.onPause();
ourSong.release();
finish();
}
private void blinkText() {
// TODO Auto-generated method stub
final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
int timeToBlink = 500; //in ms
try{
Thread.sleep(timeToBlink);
}catch (Exception e) {
}
handler.post(new Runnable() {
@Override
public void run() {
TextView txt = (TextView) findViewById(R.id.tv);
if(txt.getVisibility() == View.VISIBLE){
txt.setVisibility(View.INVISIBLE);
}else{
txt.setVisibility(View.VISIBLE);
}
blinkText();
}
});
}}).start();
}
}
【问题讨论】:
-
你需要处理onconfigurationchanged
-
@surya 我在哪里做的,是我需要创建的新动作监听器。我是这方面的新手,非常感谢您的帮助
标签: java android media-player