我目前正在通过阅读 Android 官方网站上的 Dev Documentation 来开发我的第一个 Android 应用程序。我想要完成的是播放一些铃声。我的代码中的一部分是:
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
public class PlayRingSounds extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void PlayRingFile(View view) {
switch (view.getId()) {
case R.id.Button01:
MediaPlayer mp1 = MediaPlayer.create(this.getApplicationContext(), R.raw.aaa);
mp1.start();
break;
case R.id.Button02:
MediaPlayer mp2 = MediaPlayer.create(this.getApplicationContext(), R.raw.bbb);
mp2.start();
break;
}
}
}
问题是当我在播放“aaa”(来自第一个按钮的声音文件)时单击第二个按钮时,“bbb”也同时开始播放。有没有办法在“bbb”播放之前停止“aaa”,或者有没有办法停止所有媒体播放器?
2009 年 12 月 30 日更新 - 新代码是:
case R.id.Button01:
if (mp2.isPlaying())
{
mp2.stop();
mp2.release();
}
mp1.reset();
mp1.prepare();
mp1.start();
break;
case R.id.Button02:
if (mp1.isPlaying())
{
mp1.stop();
mp1.release();
}
mp2.reset();
mp2.prepare();
mp2.start();
break;
mp1.prepare() 和 mp2.prepare() 给出 IOException 错误。