尝试从XCAssets读取数据文件时获取nil资源URL

时间:2016-09-06 05:08:02

标签: ios objective-c nsurl xcasset

我正在尝试在项目的XCAssets文件夹中读取保存为数据文件的视频文件。我正在使用以下代码 -

NSString *videoFilePath = [[NSBundle mainBundle] pathForResource:@"login_video" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:videoFilePath];
self.avPlayer = [AVPlayer playerWithURL: fileURL];
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;

这段代码已经为我工作了很长一段时间,目标SDK设置为iOS 8.我最近改为iOS 9,现在这给了我一个nil路径和网址。 资源login_video作为数据文件存储在我的XCAssets文件夹中。 我在这里做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

有两种获取网址的方法

首先,如果你想要useXCAssets

NSDataAsset *ob = [[NSDataAsset alloc]initWithName:@"a"];
   NSData *obdata = ob.data;
  [obdata writeToFile:@"your path" atomically:YES];
NSURL *filepath = [NSURL fileURLWithPath:@"your path"];
AVPlayerItem *player = [AVPlayerItem playerItemWithURL:filepath];

第二

将视频复制到项目的mainBundle并通过

获取
NSString *videoFilePath = [[NSBundle mainBundle] pathForResource:@"login_video" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:videoFilePath];

不在XCAssets文件夹中。