私は Android にかなり慣れていないので、これがばかげた質問ではないことを願っていますが、MediaPlayer で状態の変更を処理するのに問題があります。メディアプレーヤーは画面上で正常に動作し、画面が表示されていない間もサウンドを再生し続けますが、アクティビティに戻ってメディアプレーヤーを停止しようとしても停止しません。onPause と onResume で保存して復元できる mp から streamID を取得する方法がわかりません。私が見逃している単純なものがあるに違いありません。ここに私がこれまでに持っているもののいくつかのスニペットがあります:
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
}
}