私のアプリはビデオを再生するので、サウンドをバックグラウンドで再生し続けます。しかし、「ホーム」ボタンを押すと再生が停止します。私がテストしているiOS 5.0.1のiPhone 4sAVPlayer:ホームボタンを押したときにバックグラウンドオーディオが停止しますが、ロックされた画面で再生されます
何が問題なのですか?
- 動画が再生されていると私は画面をロック場合は、それは私がロック画面のコントロールから再生を制御することができ、
- をプレイし続ける:次、前、再生、一時停止を。
- 私は「家」、そしてマルチタスクバーから「リモコン」に行き、を押すと、それはに動作します。
何が問題なのですか。
- 私は私が行うとき、オーディオはを停止するため、私は、「ホーム」ボタンを押すとアプリが遊んでおきたいです。
私が行っている:私のapp.plistで "必要なバックグラウンドモード" に
- を追加しました "オーディオ"
は、アプリデリゲートの次のコードをアプリケーションに追加しました: didFinishLaunchingWithOptions:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
すべての作品はどのように来 - (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
//End recieving events
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
[self play:nil];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self actionPlaybackPreviousItem];
break;
case UIEventSubtypeRemoteControlNextTrack:
[self actionPlaybackNextItem];
break;
default:
break;
}
}
}
しかし、この:
は私のビューコントローラでは、私はリモコンを受信するためのメソッドを実装しましたか?
ます。また、ムービーが再生されているときに 'UIApplicationDidEnterBackgroundNotification'にプレーヤー内から登録および削除することができますが確認します。タイマーを使用して、通知が開始されたときにビデオを再開する必要があります。 – MacTeo
Otto Boyはすでにコメント[このリンク](https://developer.apple.com/library/content/qa/qa1668/_index.html)ですが、このケースではタイマーが良くありません。タイマーを使用する場合、0.1秒間の短時間停止があります。 AVPlayerをAVPlayerLayerから削除するだけです。 –