没有可用于使用数据初始化 Movieplayer 的方法。
我的建议:您需要将数据作为视频文件写入文档目录,然后使用该 url 初始化播放器。
目标 C
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile.m4v"];
[data writeToFile:appFile atomically:YES];
这里的data是视频文件的NSData。
您现在可以使用appFile 变量来初始化您的电影播放器。
NSURL *movieUrl = [NSURL fileURLWithPath:appFile];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController] alloc] initWithContentURL:movieUrl];
斯威夫特
保存文件:
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
if let docDir = paths.first
{
let appFile = docDir.appending("/MyFile.m4v")
let movieUrl = URL(fileURLWithPath: appFile)
do
{
try data.write(to: movieUrl, options: .atomic)
}
catch let error as NSError
{
print(error.localizedDescription)
}
}
初始化电影播放器:
let moviePlayer = MPMoviePlayerController(contentURL: movieUrl)
注意:
MPMoviePlayerController 在 iOS 9 中已弃用,因此您可能需要使用 AVPlayerViewController