在iphone中播放视频

时间:2010-12-16 05:32:14

标签: iphone

我使用avfoundation从我的设备录制视频,然后使用imagepicker从图库中选择视频,然后将其上传到本地服务器。 每当我从服务器获取上传的视频时,它都不会通过使用mpmovieplayer播放,但如果我存储了.mov格式的其他视频,它将播放得很好。有时我的视频也播放得很好。 我的问题是: - 这是因为视频的帧率 - 或者这是因为流媒体问题?

 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 个答案:

答案 0 :(得分:1)

为了从服务器流式传输视频并使用MPMoviePlayer播放,需要使用mediafilesegmenter工具对文件进行分段。我不确定这是否与Snow Leopard一起提供,但由于这些工具经常根据Apple更新,因此您应该下载最新版本。有关如何获取这些工具的详细信息,请参阅Technical Note TN2224

这个想法是将文件分成小段,比如每个10秒,以方便流式传输。该工具将创建一个m3u8扩展名的播放列表。此文件的URL是您需要提供给MPMoviePlayer的URL。

即使您没有进行实时流式传输,您仍然需要对视频进行分段,否则它可能会在某些iOS版本的某些iOS设备上播放,但不能保证。

相关问题