私のiPadアプリでは、WebサイトからMP4を再生するMPMoviePlayerControllerを作成します。MP4では話している人がいます。アプリで、オーディオとビデオの同期が0.5秒または1/4秒ずれていることに気づきました。(私はWebブラウザーでビデオを表示し、ラグがないため、これを知ることができます。)
私がこれをしなければならない唯一の手がかりは、MPMoviePlayerControllerが最初にロードされると、オーディオの再生が開始されますが、ビデオは再生されません。その後、ビデオの再生が開始され、数フレームスキップして「追いつく」ように見えます。オーディオ...しかし、それは完全に同期していません。
このクラスがAppleのドキュメントによると「ブラックボックス」であり、既存のメソッドやプロパティのどれもこの問題に役立つものがないことを考えると、私は少し困惑しています。奇妙な回避策に直面するのではなく、少し遅れてそのままにしておく必要があるかもしれません。誰かがこれを以前に経験したことがあるか、または解決策を提案できるかどうかを確認したかったのです。
私はMountainLion、最新のXCode、iOS6を搭載したiPad2で実行しています。
コントローラの生成に使用するコードは次のとおりです。
-(void)startVideoPlaying {
if (!self.theMoviePlayer) {
self.theMoviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
[self.bgView addSubview: self.theMoviePlayer.view];
[self.theMoviePlayer.view setFrame: movieContainer.frame]; // player's frame must match parent's
} else {
[self.theMoviePlayer setContentURL:movieURL];
}
self.theMoviePlayer.shouldAutoplay = YES;
[self.theMoviePlayer play];
}
助けてくれてありがとう。