【问题标题】:Getting nil resource URL when trying to read data file from XCAssets尝试从 XCAssets 读取数据文件时获取零资源 URL
【发布时间】:2017-01-13 10:33:40
【问题描述】:

我正在尝试读取在我的项目的 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 路径和 URL。 login_video 资源作为数据文件存储在我的 XCAssets 文件夹中。 我在这里做错了什么?

谢谢!

【问题讨论】:

    标签: ios objective-c nsurl xcasset


    【解决方案1】:

    有两种方法可以获取您的网址

    首先如果你想使用 XCAssets

    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 文件夹中。

    【讨论】:

    • 确保资产是目标的成员;出于某种原因,我在一个失败的应用程序中注意到它不是;不知道如何,但您应该在构建期间看到“编译资产目录”的阶段。
    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2015-05-10
    • 2011-12-21
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多