如何从url下载视频将其保存在目录中并在ios中使用MPMovie player播放
我一直尝试下载,但下载的视频显示不支持plz帮助谢谢帮助 这是我的密码: 从url代码下载视频如何从url下载视频将其保存在目录中并在ios中使用MPMovie player播放,ios,objective-c,Ios,Objective C,我一直尝试下载,但下载的视频显示不支持plz帮助谢谢帮助 这是我的密码: 从url代码下载视频 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"Downloading Started"); NSString *urlToDownload = @"http://cdn-fms.rbs.com.br/vod/hls_sample1_manifest.m3u
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Downloading Started");
NSString *urlToDownload = @"http://cdn-fms.rbs.com.br/vod/hls_sample1_manifest.m3u8";
NSURL *url = [NSURL URLWithString:urlToDownload];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSLog(@"urldata %@ ",urlData);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"thefifle2.mov"];
//saving is done on main thread
dispatch_async(dispatch_get_main_queue(), ^{
[urlData writeToFile:filePath atomically:YES];
NSLog(@"File Saved !%@",filePath);
_url = [NSURL URLWithString:filePath];
[self playv];
});
}
});
使用MPMoviepLayercontroller播放下载的视频
NSURL *vedioURL;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil];
NSLog(@"files array %@", filePathsArray);
NSString *fullpath;
for (NSString *apath in filePathsArray )
{
fullpath = [documentsDirectory stringByAppendingPathComponent:apath];
vedioURL =[NSURL fileURLWithPath:fullpath];
}
NSData *urlData1 = [NSData dataWithContentsOfURL:vedioURL];
NSLog(@" url data1 %@ ",urlData1);
NSLog(@"vurl %@",vedioURL);
MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL];
[self presentMoviePlayerViewControllerAnimated:videoPlayerView];
[videoPlayerView.moviePlayer play];
你知道你的URL实际上并不指向“视频”文件吗
.m3u8文件不是实际的资产文件,而是更类似于播放列表。它们用于HTTP实时流媒体,并根据可用带宽为“片段”提供位置您知道您的URL实际上并不指向“视频”文件吗
.m3u8文件不是实际的资产文件,而是更类似于播放列表。它们用于HTTP实时流媒体,并根据可用带宽为“片段”提供位置我尝试了一些适用于我的mp4示例
//download the file in a seperate thread.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Downloading Started");
NSString *urlToDownload = @"http://techslides.com/demos/sample-videos/small.mp4";
NSURL *url = [NSURL URLWithString:urlToDownload];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSLog(@"urldata %@ ",urlData);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"demo2.mp4"];
//saving is done on main thread
dispatch_async(dispatch_get_main_queue(), ^{
[urlData writeToFile:filePath atomically:YES];
NSLog(@"File Saved !%@",filePath);
_url = [NSURL URLWithString:filePath];
});
}
});
我尝试了一些对我有用的mp4示例
//download the file in a seperate thread.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Downloading Started");
NSString *urlToDownload = @"http://techslides.com/demos/sample-videos/small.mp4";
NSURL *url = [NSURL URLWithString:urlToDownload];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSLog(@"urldata %@ ",urlData);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"demo2.mp4"];
//saving is done on main thread
dispatch_async(dispatch_get_main_queue(), ^{
[urlData writeToFile:filePath atomically:YES];
NSLog(@"File Saved !%@",filePath);
_url = [NSURL URLWithString:filePath];
});
}
});
谢谢你MDB983。你能发送url下载视频文件吗?我必须以何种格式存储这些视频?谢谢你MDB983。你能发送url下载视频文件吗?我必须以何种格式存储这些视频?这是我的观点,原始url不是资产文件。m3u8文件本质上是一个xml文件,因此您尝试播放一个类似于xml文件的东西。感谢这帮助我分配。这是我的观点,原始url不是资产文件。m3u8文件本质上是一个xml文件,因此您尝试播放类似于xml文件的内容。谢谢这帮助我分配。我在这里遇到了相同的问题:我在这里遇到了相同的问题: