希望用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];
}
答案 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];
}