【发布时间】:2015-05-03 05:44:23
【问题描述】:
我在一个iOS 项目中工作。我想申请从互联网programmatically 下载video。那我就想玩了。我知道如何从Resources 播放本地视频,但我的问题是如何下载它,并找到它来播放。
我正在使用MPMoviePlayerController 运行视频。
提前致谢
【问题讨论】:
标签: ios objective-c media-player mpmovieplayer
我在一个iOS 项目中工作。我想申请从互联网programmatically 下载video。那我就想玩了。我知道如何从Resources 播放本地视频,但我的问题是如何下载它,并找到它来播放。
我正在使用MPMoviePlayerController 运行视频。
提前致谢
【问题讨论】:
标签: ios objective-c media-player mpmovieplayer
我找到了答案
我在这里保存了视频
NSString *stringURL = @"http://videoURL";
NSURL *url = [NSURL URLWithString:stringURL];
NSData *urlData = [NSData dataWithContentsOfURL:url];
NSString *documentsDirectory ;
if ( urlData )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"videoName.mp4"];
[urlData writeToFile:filePath atomically:YES];
}
此代码用于从其目录播放视频
NSString *filepath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"videoName.mp4"];
//video URL
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[moviePlayerController play];
【讨论】:
如果你有一个有效的视频 url,Apple 提供了一个 API 来直接缓冲带有 NSURL 的视频。
您应该从控制器中保存对 MPMoviePlayerController 对象的引用,这样 ARC 就不会释放该对象。
@property (nonatomic,strong) MPMoviePlayerController* mc;
制作网址
NSURL *url = [NSURL URLWithString:@"http://www.example.com/video.mp4"];
使用该 URL 初始化 MPMoviePlayerController
MPMoviePlayerController *controller = [[MPMoviePlayerController alloc] initWithContentURL:url];
调整控制器大小,将其添加到您的视图中,播放并欣赏视频。
self.mc = controller; // so that ARC doesn't release the controller
controller.view.frame = self.view.bounds;
[self.view addSubview:controller.view];
[controller play]; //Start playing
更多详情可以访问playing video from a url in ios7
【讨论】: