2012-08-01 2 views
3

MPMoviePlayerController를 사용하여 반복되는 비디오 클립을 재생하고 있습니다. 앱 대리자에서 내 AVAudioSession 범주를 AVAudioSessionCategoryAmbient으로 설정하여 내 비디오 클립이 iPod 오디오를 방해하지 않도록했습니다.MPMoviePlayerController가 AirPlay iPod 오디오를 인터럽트하지만 장치에서 정상적으로 작동합니다.

이 기능은 기기에서 iPod 오디오를 재생할 때 유용하지만 AirPlay를 사용하면 반복되는 동영상이 반복 될 때마다 오디오가 일시적으로 중단되기 때문에 매우 자주 발생합니다. AppDelegate.m에서

:

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:@"AVAudioSessionCategoryAmbient" error:nil]; 

내 비디오 뷰 컨트롤러에서 :

내가 그물을 샅샅이 한 답변을 찾을 수 없습니다
self.videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
self.videoPlayer.useApplicationAudioSession = YES; 
self.videoPlayer.controlStyle = MPMovieControlStyleNone; 
self.videoPlayer.repeatMode = MPMovieRepeatModeOne; 

. 어떤 충고라도 잘 될 것입니다. 감사!

답변

2

문제가 해결되었습니다. MPMoviePlayerController 대신 AVPlayer를 사용해야했습니다. 그리고

self.avPlayer = [AVPlayer playerWithURL:url]; 
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer]; 
self.avPlayerLayer.frame = self.view.bounds; 

[self.view.layer addSublayer:self.avPlayerLayer]; 
[self.avPlayer play]; 

그것을 루프를 만들려면 : ...

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(movieDidFinish:) 
    name:AVPlayerItemDidPlayToEndTimeNotification 
    object:[self.avPlayer currentItem]]; 

- (void)movieDidFinish:(NSNotification *)notification { 
    [self.avPlayer seekToTime:kCMTimeZero]; 
} 
관련 문제