1

私は持っfirstViewControllerていSecondViewControllerます。どちらのコントローラーでも、再生ボタンをタップするとメロディーが再生されます。したがって、1つのコントローラーで再生ボタンをタップしてから2つのコントローラーに移動し、他の再生ボタンをタップすると、2つのメロディーが一緒に再生されます。だから私の質問は、2番目のコントローラーの再生ボタンをタップしたときに1番目のコントローラーから1番目のメロディーを停止する方法です。ありがとうございました!

firstViewControllerでviewdidload

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"first" ofType:@"wav"];
NSURL *soundURL_ = [NSURL fileURLWithPath:soundPath];
AVAudioPlayer *first = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL_ error:nil];
[first prepareToPlay];

同じですsecondViewcontrollerが、最初ではなく2番目です

ボタンを押したとき:

[first play]
4

1 に答える 1

2

AVAudioPlayer とプレーヤーに関連付けられたメソッドを含むカスタム オブジェクトの 1 つのインスタンスを作成し、両方のビューでそのオブジェクトのポインターを作成できます。

AppDelegate 内から AVAudioPlayer をインスタンス化する場合は、最初に AVAudioPlayer を設定し、それを AppDelegate のプロパティに割り当てる必要があります。

View Controller 内から、App Delegate の任意のプロパティに簡単にアクセスできます。次のように書くだけです。

AppNameAppDelegate *ad = (AppNameAppDelegate *)[[UIApplication sharedApplication] delegate];

に続く:

localAVAudioPlayerInstance = ad.audioPlayer;

詳細な手順が必要な場合はお知らせください。

于 2012-07-17T00:19:37.830 に答える