您的位置:首页 > 移动开发 > IOS开发

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


打开路径看,我们可以看到视频在应用程序包文件中:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 视频