ios - 播放使用 NSDataAsset (Xcode xcassets) 存储的视频

标签 ios asset-catalog app-thinning

我正在尝试使用 Apple App Thinning功能(从 iOS 9 开始提供),让您可以根据设备架构和功能区分资源。在我的例子中,我想做的是在应用程序包中有一个不同的视频文件(.mp4 格式)一个用于 iPhone,一个用于 iPad 使用 Xcode .xcassets 数据集

要从 .xcassets Data Set 中检索文件,Apple 提供了 NSDataAsset 类,但是:因为 AVPlayer 需要一个 URL 来播放视频,而 NSDataAsset 仅使用 Data 格式提供其内容,我无法播放视频。

我想做的是检索 NSDataAsset .data URL。可能吗?

最佳答案

你可以试试:

NSDataAsset *videosDataAsset = [[NSDataAsset alloc] initWithName:@"AssetName"];
NSData *data = videosDataAsset.data;
NSString *filename = @"FileToSaveInto.mp4";
NSURL *URL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:filename];

if ([data writeToURL:URL atomically:YES]) {
    // run player
}

关于ios - 播放使用 NSDataAsset (Xcode xcassets) 存储的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46826085/

相关文章:

ios - xcode 7 中没有 Retina 4 选项,那么如何在 Assets 中设置全屏图像以使其在 4s/5s 和 iPhone 6 中正确显示?

ios - iOS 9 中的点播资源 - 如何找出下载资源的确切位置?

ios - 如何在不上传到 Appstore 的情况下检查 iOS 中的应用切片功能

ios - Phonegap/Cordova 文件传输上传图像作为 Base64 字符串在 ios 中不起作用

ios - 保留 iPhone X 主屏幕指示器的纵向位置

ios - 图像 Assets 目录和 iOS 设备系列

ios - App Thinning Size Report 报告的大小与 App Store 大小完全不同

ios - Google Analytics 发送命中时内存泄漏

ios - 如何在 Symbolic Breakpoint 中使用 lldb 登录 viewDidLoad?

ios - iPhone 5(和 iPhone 6)启动屏幕上的黑条