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

問題が解決しました!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];
}
于 2012-08-14T01:02:18.520 に答える