2012-02-23 54 views
0

我正在製作iphone應用程序(Live radio app)。如果手機在背景模式下播放時響鈴

我的應用程序支持後臺模式。

但是,如果手機響起當廣播應用程序在後臺模式下播放時,我的應用程序停止出現錯誤。

MP AVAudioSessionDelegateMediaPlayerOnly end interruption. Interruptor <Phone> category <completed> resumable <0>, _state = 6 
MP endInterruptionFromInterruptor :: resuming playback 

所以,我修改了我的代碼,但沒用。

我會添加我的代碼。請告訴我我的錯誤。謝謝。

AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, AVAudioSessionDelegate> 

@property (assign, nonatomic) UIBackgroundTaskIdentifier bgTask; 
... ... 

@end 

AppDelegate.m

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
     bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
     // Clean up any unfinished task business by marking where you. 
     // stopped or ending the task outright. 
     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }]; 

    // Start the long-running task and return immediately. 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

     // Do the work associated with the task, preferably in chunks. 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }); 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{   
     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }];  
} 

viewController.m

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 
moviePlayer = [[MPMoviePlayerController alloc] init]; 
[moviePlayer setContentURL:... m3u8]; 
[moviePlayer play]; 

回答

0

你需要補充一點:
[UIApplication的sharedApplication] beginReceivingRemoteControlEvents]。

相關問題