ナビゲーションツリーを備えたアプリケーションがあります。どこかにmp3付きのオーディオプレーヤーがあります。
UITabViewController // controlled by AppDelegate.m
-> UINavigationController
-> UITableViewController // controlled by TableViewController.m
-> UIViewController // with my AVAudioPlayer controlled by AudioViewController.m
AudioViewController.m
私はすべてのオーディオエンジンを持っているので、再生/一時停止/停止し、戻るボタンを押すと(viewWillDisappearなどを使用して)それを強制終了します-それはこの1つのビューでのみ再生され、別のビューでは再生されません。
ただし、再生がオンのときにホームボタンを押すと問題が発生します。停止しますが、アプリに戻った後、記憶されているタイムスタンプから再び再生されます。
私はこれをすべて試しました:
- (void)viewDidUnload
{
[super viewDidUnload];
[self audioStop:self];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self audioStop:self];
[super viewWillDisappear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self audioStop:self];
}
- (void)viewWillUnload
{
[self audioStop:self];
[super viewWillUnload];
}
- (void)awakeFromNib
{
[super awakeFromNib];
[self audioStop:self];
}
しかし、何も起こりません。
ホームボタンが押されたかどうかを管理するにはapplicationWillResignActive
、AppDelegateのメソッドを使用する必要があることがわかりましたが、ここからオーディオプレーヤーを停止する方法がまったくわかりません。私はiOSにまったく慣れておらず、delegates
動作方法に慣れていないので、これを解決するのを手伝ってください。