AVAudioplayerの単一のオブジェクトで複数の曲を再生したいのですが、ユーザーが行プレーヤービューをタップすると開いているが、ユーザーがテーブルプレーヤーの他の行に戻ると、両方の曲を連続して再生します。これを修正するために何ができますか?
2106 次
2 に答える
3
hファイルにオブジェクトを作成し、プロパティを宣言して合成したと仮定します。また、didSelectRowAtIndexPath:メソッドからファイルを再生している可能性があります。そのメソッドでは、コードの次のセクションがあるかもしれません。
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: nil];
self.appSoundPlayer = newPlayer;
[newPlayer release];
[appSoundPlayer prepareToPlay];
[appSoundPlayer setVolume: 1.0];
[appSoundPlayer setDelegate: self];
[appSoundPlayer play];
[appSoundPlayerprepareToPlay]の前; 追加[appsoundPlayerstop]; 再生セッションを開始する前に、オーディオプレーヤーが停止状態にあることを確認するためだけです。
別の方法を使用している場合は、コードの関連部分をここに投稿してください。
于 2010-04-07T10:54:00.447 に答える
1
AnAVAudioPlayer
は、単一のオーディオクリップを再生するためのものです。別のクリップを再生したい場合は、現在のプレーヤーを停止し、新しいオーディオデータで新しいクリップを作成して再生します。
2つの曲が重なっている場合は、誤って2つのインスタンスを作成AVAudioPlayer
し、最初のインスタンスを停止できていない可能性があります。
于 2013-04-25T21:59:07.350 に答える