2012-09-21 138 views
0

在我的iPad應用程序中,我創建了一個MPMoviePlayerController,用於播放網站上的MP4。在MP4中有人在說話。在應用程序中,我注意到音頻和視頻可能在半秒或四分之一秒內不同步。 (我可以這樣說,因爲我在網頁瀏覽器中觀看視頻,並且沒有延遲。)MPMoviePlayerController音頻/視頻不同步

我唯一的線索是當MPMoviePlayerController第一次加載時,音頻開始播放,但視頻沒有 - 那麼視頻就開始播放了,它似乎跳過了幾幀來「追趕」音頻......但它並不完全同步。

看到這個班級如何成爲每個Apple Documentation的「黑匣子」,並且沒有任何現有的方法或屬性可以幫助解決這個問題,我有點難住。我可能不得不放棄這種輕微的滯後,而不是面對怪異的解決方法。我想看看有沒有人經歷過這種情況,或者可以提出解決方案。

我與iOS 6

我用它來生成控制器代碼在山獅,最新的XCode,iPad 2的運行是:

- (無效){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]; 
} 

感謝您的任何幫助。

回答

1

經過各種測試後,我必須得出結論,我一直在玩MP4的編碼有問題。我不是視頻編解碼器大師,但我做了以下測試,告訴我這一點:

1)下載MP4,將其放入應用程序並通過文件URL將其加載到MPMoviePlayerController中。音頻仍然不同步,所以不是連接問題。

2)在網上找到另一個MP4(Vimeo的東西)並將其流入播放器。音頻同步正確,可能是我嘗試播放的MP4有問題。

3)下載MP4並使用Handbrake將其轉換爲具有各種不同設置(包括iPad預設)的M4V。音頻同步正常。

基於此,在我看來,我試圖播放的文件比播放器(或播放器無法處理它)出​​現問題。不幸的是,我試圖播放的文件不能簡單地轉換,它們是大型網站系統的一部分,並且許多數百個文件將不得不改變,等等。所以,當我回答我自己的問題時,我沒有解決問題。