2012-08-01 34 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

问题解决!我只需要使用AVPlayer而不是MPMoviePlayerController。

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]; 
} 
相关问题