バックグラウンドで音楽を再生できるアプリがありますが、アプリがバックグラウンドで音楽の再生を停止すると、何らかの理由で一部のユーザーに問題が発生します。自分のiPhoneでこのバグに何度か気づきましたが、なぜこれが起こるのかわかりませんか?AVAudioFoundation.frameworkを使用しています
まず、サブクラス化してremoteEventsに登録しUIWindow
ます。
@interface MelomanWindow : UIWindow
@property (nonatomic, assign) UIResponder *responder;
- (void)remoteControlReceivedWithEvent:(UIEvent *)event;
@end
--------------------------------------
@implementation MelomanWindow
@synthesize responder = _responder;
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {
[self.responder remoteControlReceivedWithEvent:receivedEvent];
}
@end
そしてでAplicationDelegate.m
:
[application beginReceivingRemoteControlEvents];
self.window.responder = [[ApplicationAudioService sharedInstance] playerViewController];
その後、私ViewController
の中でこれを行います:
- (id)init {
...
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
audioSession.delegate = self;
...
}
アプリを終了するとバグが消えます。また、このバグが発生したときにリモートコントローラーイベントが機能しません。また、このバグが表示されたときにステータスバーに「再生」アイコンが表示されない。