私のアプリでは、ユーザーがバックグラウンドでオーディオ再生を制御できるようにしたいと考えています。.plist で backGround モードを設定し、必要に応じて bg で再生します。しかし、コントロール ボタンに触れても応答がありません。
私はAudioSession
このように設定します
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance]setActive:YES error:nil];
次に、私のプレーヤーが配置されているviewContollerで、私はこれがbeginReceivingRemoteControlEvents
好きです
if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
[self becomeFirstResponder];
NSLog(@"Responds!");
}
そして、それは印刷しますResponds!
しかし問題は、このメソッドが呼び出されないことです
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
NSLog(@"Where is my event?");
if(event.type == UIEventTypeRemoteControl)
{
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"Pause");
[self playWords:playButton];
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"Next");
[self next];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
NSLog(@"Prev");
[self prev];
break;
}
}
カテゴリを書き込んでUIApplication
ファーストレスポンダーにしようとさえしましたが、役に立ちません
@implementation UIApplication (RemoteEvents)
-(BOOL)canBecomeFirstResponder
{
return YES;
}
@end
なぜこれが起こることができますか?
SOLUTION これが私の問題を解決したものですiOS4でバックグラウンドに入ってオーディオを再生する