ブロードキャストレシーバーアクティビティ内でこのコードを使用してサウンドファイルを再生しています。
_notification.sound = Uri.parse("Android.resource://emad.app/raw/seven_chimes");
_
このファイルの再生が終了したことを検出したいと思います。
私はこのようなループを試しましたが、サウンドファイルがまだ再生されていることを確認したにもかかわらず、常に= falseなので、これはメディアプレーヤーにのみ適していると思います:
_/*
* Stay here until the chime sound is finished.
*/
while (manager.isMusicActive()){
}
_
manager.isMusicActive()
の代わりに使用すべきものを教えてもらえますか?
MediaPlayerクラスを使用して、サウンドの再生が終了したときにアクティブになるCompletionリスナーを追加できます。
MediaPlayer mp = MediaPlayer.create(this,Uri.parse("Android.resource://emad.app/raw/seven_chimes"));
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
performOnEnd();
}
});
mp.start();
サービスを使用して音楽を再生してみてください。一度再生した後、サービスを停止すると、onDestroy()サービスメソッドにプログラムを追加できます。