AVAudioPlayerを使用してオーディオを停止するヘルプ
-
19-09-2019 - |
質問
さてさて私は2つの問題を抱えています。私は.caf形式のシンプルなオーディオファイルを再生するAVAudioPlayerを使用しています。私は何をしようとしていることは遊びを持っており、ボタンを一時停止しています。ここでは、簡単なIBActionのサンプルがボタンからオーディオを再生することです。
- (IBAction) clear {
NSString *path = [[NSBundle mainBundle] pathForResource:@"clear" ofType:@"caf"];
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
myAudio.delegate = self;
myAudio.volume = 1.0;
myAudio.numberOfLoops = 0;
[myAudio play];
}
だから私は先に行くと、この方法で別のIBActionを作成するときに...
- (IBAction) stopaudio {
[myAudio stop];
audioPlayer.currentTime = 0;
}
私はコンパイルとXcodeはmyAudio stopaudioにIBActionが定義されていないことを私に伝えます。私はそれを修正するにはどうすればよいので、私は別のIBActionでmyAudioにアクセスすることができるよ?
私の2番目の質問は、私はそれが戻ってテーブルビューに行くために、バックボタンでのUIViewに私を取る選択を行うとき、私は、テーブルビューの設定にNavigationControllerを使用しているということです。私は何をしようとしていることは、私が戻ってテーブルビューに行くとき、私はUIViewの中で遊んでてきたすべてのオーディオを殺すことです。上記のコードは、私はUIViewの中に持っているつもりだコードの一部です。
また、1つの簡単な質問。私は1分の長さでオーディオファイルを持っていると言うことができます。古いインスタンスの再生が行われる前に再びプレーをクリックすると、そのオーディオの新しいインスタンスをオーバーラップします。どのように私はmyAudioが再生されているかどうかを確認し、それの再生が終了されるmyAudioまで再び再生することを許可することはできません?
ありがとう!
解決
まず第一に、あなたは、ドキュメントを読んでください。それはほとんどすべてのご質問のを削除します。それにもかかわらず、あなたのクラスのすべてのメソッドからAVAudioPlayerのインスタンスへのアクセス権を持っている、あなたはあなたの.hファイルで定義する必要があります。前の画面に戻るにはプレーヤーを停止するには、お使いの[myAudio stop]
方法でviewWillDisappear:(BOOL)animated
を呼び出します。あなたの最後の質問について。あなたの.hファイルでmyAudio
を定義する場合、あなたはそれが今で再生されているかどうかを確認することができるようになります。
- (IBAction) clear { if(![myAudio isPlaying]){ [myAudio play]; }
}