下载文件并在ios中使用视频播放器播放

时间:2014-02-21 11:00:30

标签: ios iphone objective-c ipad mpmovieplayer

希望用xcode实现以下逻辑:
1)下载文件=== OK,我正在执行异步操作 2)之后我想和电影播放器​​一起运行:
3)我试过的示例代码如下所示。它不等待下载完成。任何人都可以建议另一种方法来执行这些或修改此代码吗?我不想等到使用计时器。

DowloadFilesManager * mydw =[[DowloadFilesManager alloc] init];
[mydw downloadURL:@"http://localhost/videos/video3x.mov" destPath:anObj.uRL];
while([mydw downLoadStatus])
{
    NSLog(@"Downloading finished);
    [videoPlayer1 setContentURL:[NSURL URLWithString:@"/Users/varunisac/Library/Application Support/iPhone Simulator/6.1/Applications/851B4382-AF7E-4653-B28F-8F0707AC5D45/Documents/SalesAppFolder/video3x.mov"]];
    [videoPlayer1 prepareToPlay];
    [videoPlayer1 play];
}

2 个答案:

答案 0 :(得分:0)

您如何下载文件?你在使用NSURLDownload吗?您必须在某处(可能在您的一个视图控制器中)实现NSURLDownloadDelegate并等待调用方法downloadDidFinish:。在该方法中,您运行上面的代码以开始播放。

答案 1 :(得分:0)

使用dispatch_sync方法下载视频文件。

dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    DowloadFilesManager * mydw =[[DowloadFilesManager alloc] init];
    [mydw downloadURL:@"http://localhost/videos/video3x.mov" destPath:anObj.uRL];
});
while([mydw downLoadStatus])
{
   NSLog(@"Downloading finished);
   [videoPlayer1 setContentURL:[NSURL URLWithString:@"/Users/varunisac/Library/Application Support/iPhone Simulator/6.1/Applications/851B4382-AF7E-4653-B28F-8F0707AC5D45/Documents/SalesAppFolder/video3x.mov"]];
   [videoPlayer1 prepareToPlay];
   [videoPlayer1 play];
}