1

AVAudioplayerの単一のオブジェクトで複数の曲を再生したいのですが、ユーザーが行プレーヤービューをタップすると開いているが、ユーザーがテーブルプレーヤーの他の行に戻ると、両方の曲を連続して再生します。これを修正するために何ができますか?

4

2 に答える 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 に答える