3

我正在使用 MPMoviePlayerController 播放循环播放的视频剪辑。在应用程序委托中,我将 AVAudioSession 的类别设置为AVAudioSessionCategoryAmbient,这样我的视频剪辑就不会中断 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;

我搜遍了网络,似乎无法找到答案。任何建议都会很棒。谢谢!

4

1 回答 1

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];
}
于 2012-08-14T01:02:18.520 回答