2012-01-27 2 views
6

MPMoviePlayerController가 홈 화면으로 이동하면 앱이 백그라운드에서 실행되고 airPlay가 재생됩니다. 하지만 홈 버튼을 두 번 탭하면 앱이 다운됩니다. 이것은 iOS 5에서 발생하지만 4.3에서는 발생하지 않습니다.백그라운드에서 airPlay를 재생하는 MPMoviePlayerController, 홈 버튼을 두 번 탭하면 충돌이 발생합니다.

다른 코드를 제외하려면 버튼 만 눌렀을 때에 만 코드를 실행하는 새로운 빈 프로젝트를 만들었습니다.

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 
Crashed Thread: 0 

Last Exception Backtrace: 
0 CoreFoundation     0x33bab8bf 0x33af2000 + 759999 
1 libobjc.A.dylib     0x31bcd1e5 0x31bc4000 + 37349 
2 AVFoundation     0x374f6cb5 -[AVPlayerItem _attachToPlayer:forImmediateEnqueueing:shouldAppendItem:] + 341 
3 AVFoundation     0x374e71f7 -[AVPlayer _insertPlaybackItemOfItem:inPlayerQueueAfterPlaybackItemOfItem:] + 43 
4 AVFoundation     0x374eebf3 __-[AVPlayer _attachItem:andPerformOperation:withObject:]_block_invoke_2 + 1099 
5 libdispatch.dylib    0x3641cd55 0x3641c000 + 3413 
6 libdispatch.dylib    0x36427e8d 0x3641c000 + 48781 
7 CoreFoundation     0x33b7e2dd 0x33af2000 + 574173 
8 CoreFoundation     0x33b014dd 0x33af2000 + 62685 
9 CoreFoundation     0x33b013a5 0x33af2000 + 62373 
10 GraphicsServices    0x31f56fcd 0x31f53000 + 16333 
11 UIKit       0x36d57743 0x36d26000 + 202563 
12 AirplayTest      0x00002e45 main (main.m:16) 
13 AirplayTest      0x00002dd4 start + 40 

모든 단서 것은 무엇을 잘못 될 수 :

Jan 27 12:08:01 unknown mediaserverd[295] <Error>: <<<<FIGSERVER>>>> FigPlayerRemoteServer_KillAndForceCrashReport: RPCTimeout message received to terminate [295] with reason 'fig rpc timeout -- FigSharedRemote_VolumeCategoryForAudioCategory' 
Jan 27 12:08:01 unknown ReportCrash[308] <Notice>: MS:Notice: Installing: (null) [ReportCrash] (675.00) 
Jan 27 12:08:01 unknown ReportCrash[308] <Error>: Saved crashreport to /Library/Logs/CrashReporter/mediaserverd-2012-01-27-120801.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0 
Jan 27 12:08:01 unknown mediaserverd[295] <Error>: <<<<FIGSERVER>>>> FigPlayerRemoteServer_KillAndForceCrashReport: RPCTimeout message received; stackshot generated 
Jan 27 12:08:01 unknown mediaserverd[295] <Error>: <<<<FIGSERVER>>>> FigPlayerRemoteServer_KillAndForceCrashReport: TERMINATING our process [295] 
Jan 27 12:08:02 unknown com.apple.launchd[1] <Notice>: (com.apple.mediaserverd) Exited: Killed: 9 
Jan 27 12:08:02 unknown mediaserverd[310] <Notice>: MS:Notice: Installing: com.apple.mediaserverd [mediaserverd] (675.00) 
Jan 27 12:08:02 unknown kernel[0] <Debug>: Sandbox: ignoring builtin profile for platform app: /usr/sbin/mediaserverd 
Jan 27 12:08:02 unknown kernel[0] <Debug>: Sandbox: ignoring builtin profile for platform app: /usr/sbin/mediaserverd 
Jan 27 12:08:03 unknown mediaserverd[310] <Error>: 12:08:03.383370 com.apple.AVConference: /SourceCache/GameKitServices/GameKitServices-344.3/AVConference.subproj/Sources/AVConferenceServer.m:1862: AVConferenceServerStart aborting - device doesn't support conferencing 

과 crashreport에 : 나는 충돌에 다음과 같은 출력을 얻을 콘솔에서

moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"]]; 

NSError *setCategoryError = nil; 
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlaybackComplete:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:moviePlayerController]; 

[moviePlayerController setMovieSourceType:MPMovieSourceTypeStreaming]; 
[self addObservers]; 
[self.delegate addSubview:moviePlayerController.view]; 
if([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) 
{ 
    [moviePlayerController setAllowsAirPlay:YES]; 
} 

moviePlayerController.fullscreen = YES; 

moviePlayerController.scalingMode = MPMovieScalingModeAspectFit; 
[moviePlayerController prepareToPlay]; 
[moviePlayerController play]; 

?

+0

나는 똑같은 문제가있었습니다. 그동안 매번 다른 앱을 시작하면 매번 그런 일이 발생하지 않았습니다. 장치가 더 많은 리소스를 필요로 할 때 MPMoviePlayerController의 뷰의 부모 뷰가 잘못 언로드되는 것으로 가정했습니다. – reddersky

+0

백그라운드로 들어갈 때 실행중인 코드가 있습니까? – Bot

+0

또한이 충돌 사고가 발생 했습니까? –

답변

0

이것은 iOS 버전 5.0의 버그 인 것 같습니다. iOS 5.1이 출시되면서 수정 된 것처럼 보입니다.

@Cyril에게 감사의 말을 전합니다.

0

iOS 5에서만 무비 플레이어 컨트롤러의 useApplicationAudioSession 속성을 NO (예 : iOS 3.1 기본 동작을 시뮬레이트)로 설정해 보았습니까? iOS 5에서 오디오 세션을 처리 할 때 버그가있는 것 같습니다. 앱을 전환하거나 중단을 처리 할 때 오디오 서버가 죽을 수 있습니다.

이 문제가 해결되면 Apple에 버그 보고서를 제출하십시오. 그것은 수정보다 해킹에 가깝습니다!