【问题标题】:Play a video stored using NSDataAsset (Xcode xcassets)播放使用 NSDataAsset (Xcode xcassets) 存储的视频
【发布时间】:2018-03-31 06:24:01
【问题描述】:
我正在尝试使用 Apple App Thinning 功能(可从 iOS 9 获得),该功能可让您根据设备架构和功能区分资源。就我而言,我想做的是在应用程序包(.mp4 格式)中有一个不同的视频文件,一个用于 iPhone,一个用于 iPad,使用 Xcode .xcassetsData Set。
要从.xcassets Data Set 检索文件,Apple 提供了NSDataAsset 类,但是:因为AVPlayer 需要URL 来播放视频,而NSDataAsset 仅使用Data 提供其内容格式,我无法播放视频。
我想做的是检索NSDataAsset.dataURL。有可能吗?
【问题讨论】:
标签:
ios
asset-catalog
app-thinning
【解决方案1】:
你可以试试:
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
}