我们可以在ios中使用nsdata创建电影播放器​​吗?

Pra*_*d G 3 video nsdata mpmovieplayer ios

我知道我们可以使用创建电影播放器initWithContentURL:,我们可以传递NSUrl参数.这里我没有NSUrl,我只有NSData.通过使用它我可以创建电影播放器​​吗?

Mid*_* MP 10

没有可用于使用数据初始化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];
Run Code Online (Sandbox Code Playgroud)

dataNSData视频文件的.

您现在可以使用该appFile变量初始化您的电影播放器​​.

NSURL *movieUrl = [NSURL fileURLWithPath:appFile];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController] alloc] initWithContentURL:movieUrl];
Run Code Online (Sandbox Code Playgroud)

迅速

保存文件:

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

初始化电影播放器​​:

let moviePlayer = MPMoviePlayerController(contentURL: movieUrl)
Run Code Online (Sandbox Code Playgroud)

注意:iOS 9中不推荐使用MPMoviePlayerController,因此您可能需要使用AVPlayerViewController