2010-12-16 59 views
1

我使用avfoundation從我的設備錄製視頻,並使用imagepicker從圖庫中選擇視頻,然後將其上傳到本地服務器。 每當我從服務器獲取上傳的視頻時,它不會使用mpmovieplayer播放,但如果我存儲了一些其他的.mov格式的視頻,它會播放良好。有時我的視頻也播放得很好。 我在這裏的問題是: - 這是因爲視頻的幀率 - 或者是因爲流媒體問題?iPhone中的視頻流

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputFileURL]) 
{ 
    [library writeVideoAtPathToSavedPhotosAlbum:outputFileURL 
           completionBlock:^(NSURL *assetURL, NSError *error) 
    { 
    if (error && [delegate respondsToSelector:@selector(assetLibraryError:forURL:)]) { 
             [delegate assetLibraryError:error forURL:assetURL]; 

    } 
    }]; 
} else { 
    if ([delegate respondsToSelector:@selector(cannotWriteToAssetLibrary)]) 
    { 
     [delegate cannotWriteToAssetLibrary]; 



    } 
} 

[[NSUserDefaults standardUserDefaults] setObject:outputFileURL forKey:@"StoreVideo"]; 

[library release]; 

if ([[UIDevice currentDevice] isMultitaskingSupported]) { 
    [[UIApplication sharedApplication] endBackgroundTask:[self backgroundRecordingID]]; 
} 

if ([delegate respondsToSelector:@selector(recordingFinished)]) { 
    [delegate recordingFinished]; 
} 

上面是代碼剪輯,我用於保存錄像後的資產庫中的視頻。

回答

1

爲了從服務器流式傳輸視頻並使用MPMoviePlayer播放視頻,需要使用mediafilesegmenter工具對文件進行分段。我不確定這是否與Snow Leopard一起提供,但由於這些工具根據Apple經常更新,因此您應該下載它們的最新版本。有關如何獲取這些工具的更多信息,請參閱Technical Note TN2224

這個想法是將文件分成小段,比如每段10秒,以方便流式傳輸。該工具將創建一個m3u8擴展名的播放列表。這個文件的URL是你需要提供給MPMoviePlayer的。

即使您沒有進行直播,您仍然需要細分視頻,否則它可能會在某些iOS版本的iOS設備上播放,但不能保證。