iOS 获取本地视频播放路径
2015-11-11 14:12
501 查看
今天在做一个视频播放器,做好了之后发给别人,但是别人那里却播放不了。找了下原因,我用的是绝对路径,发给别人之后,别人在打开,肯定路径就不对了罗。
之前,我的路径是直接从左边把视频文件拖到代码区域得到的路径,如下图:
这样,我可以播放,但是发给别人,别人那里就播放不了,因为在别人那里路径就改变了。所以,那就要换一种获取路径的方法。我们工程里面的图片和视频文件都放在应用程序包里面,所以我们获取应用程序包的路径,然后在拼上我们视频文件的名字,就可以得到视频相对于工程的路径了。
把视频文件拷贝到你的项目中时,一定要添加到应用程序包中,记得把下面这个勾选中,否则视频就算添加到你的工程中了,但是没有拷贝到应用程序包中,一样还是播放不了的。
然后添加如下代码:
输出来的路径是这样的:
打开路径看,我们可以看到视频在应用程序包文件中:
之前,我的路径是直接从左边把视频文件拖到代码区域得到的路径,如下图:
这样,我可以播放,但是发给别人,别人那里就播放不了,因为在别人那里路径就改变了。所以,那就要换一种获取路径的方法。我们工程里面的图片和视频文件都放在应用程序包里面,所以我们获取应用程序包的路径,然后在拼上我们视频文件的名字,就可以得到视频相对于工程的路径了。
把视频文件拷贝到你的项目中时,一定要添加到应用程序包中,记得把下面这个勾选中,否则视频就算添加到你的工程中了,但是没有拷贝到应用程序包中,一样还是播放不了的。
然后添加如下代码:
- (void)viewDidLoad { [super viewDidLoad]; //获取视频播放路径 NSString *str = [[NSBundle mainBundle] resourcePath]; NSString *filePath = [NSString stringWithFormat:@"%@%@",str,@"/123.mp4"]; NSLog(@"%@",filePath); NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath]; AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset]; AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem]; AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; playerLayer.frame = CGRectMake(0, 20, 300, 300); playerLayer.videoGravity = AVLayerVideoGravityResizeAspect; [self.view.layer addSublayer:playerLayer]; [player play]; UIView *videoMaskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 250)]; videoMaskView.backgroundColor = [UIColor colorWithRed:0/255.0f green:0/255.0f blue:0/255.0f alpha:0.3]; [self.view addSubview:videoMaskView]; }
输出来的路径是这样的:
/Users/yuancan/Library/Developer/CoreSimulator/Devices/9E147531-EAE4-447E-9246-F36D5D476972/data/Containers/Bundle/Application/811A4649-D753-47E2-8D86-E07D24CC9F06/TestVideoPlay.app/123.mp4
打开路径看,我们可以看到视频在应用程序包文件中:
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- DVI 视频接口图文解析
- C#实现语音视频录制-附demo源码
- C#调用mmpeg进行各种视频转换的类实例
- C#获取视频某一帧的缩略图的方法
- 显示youtube视频缩略图和Vimeo视频缩略图代码分享
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP实现将视频转成MP4并获取视频预览图的方法
- C++实现优酷土豆去视频广告的方法