我希望这不是一个愚蠢的问题,因为我对 Android 还很陌生,但是我在使用 MediaPlayer 处理状态更改时遇到了麻烦。媒体播放器在屏幕上工作正常,并且在屏幕不可见时继续播放声音,但是当我返回活动并尝试停止媒体播放器时,它不会停止。反正我看不到从 mp 获取 streamID,我可以在 onPause 和 onResume 上保存和恢复它。我一定缺少一些简单的东西。这是我到目前为止的一些片段:
public class Noise extends Activity {
public MediaPlayer mp;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layour.main);
Button startButton = (Button)findViewById(R.id.startButton);
Button stopButton = (Button)findViewById(R.id.stopButton);
mp = MediaPlayer.create(this, R.raw.noise);
startButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
playSoundLoop();
}
});
stopButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
stopSound();
}
});
}
public void playSoundLoop(){
mp.setLooping(true);
mp.start();
}
public void stopSound(){
mp.pause();
//Had originally tried mp.stop, mp.reset, mp.prepare, but that didn't work any better
}
}