[英]Android force closing when trying to use release(); to stop MediaPlayer
我正在创建一个应用程序,它将在开始时播放加载 MediaPlayer,然后在几秒钟后,这个 class 将被销毁并移动到另一个 class。 问题是每当第一个 class 被破坏时,我都会尝试停止 MediaPlayer,但它只会强制关闭我。 这是代码。
public class HelloWorldActivity extends Activity {
MediaPlayer mp;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.otj);
mp.start();
Thread LogoTimer = new Thread() {
public void run() {
try {
int LogoTimer = 0;
while(LogoTimer < 5000) {
sleep(100);
LogoTimer = LogoTimer + 100;
}
startActivity(new Intent("com.example.HelloWorld.CLEARSCREEN"));
}
catch (InterruptedException e) {
e.printStackTrace();
}
finally {
finish();
}
}
};
LogoTimer.start();
}
protected void onDestroy() {
super.onDestroy();
mp.release();
}
在onCreate()
中,您声明了另一个名为mp
的变量,它隐藏了 class 字段mp
,这意味着您在onDestroy()
上调用的mp
是null 。
从行中删除final MediaPlayer
final MediaPlayer mp = MediaPlayer.create(this, R.raw.otj);
所以你会一直使用原件。
您的代码应如下所示:
public class HelloWorldActivity extends Activity {
MediaPlayer mp;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
mp = MediaPlayer.create(this, R.raw.otj);
mp.start();
mp.release() 怎么样? 它应该停止媒体播放器,但只要 onDestroy(){} 运行它就会强制关闭。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.