ios - 如何将视频数据转换为NSURL

标签 ios swift

我有一个视频正在从我的服务器获取并作为数据接收。我试图将原始数据覆盖到 URL 中,以便我可以使用它来实例化 AVPlayerItem 并在手机上播放视频。但是,当我打印“videoDataString”时,此代码返回 nil。如果我打印“videoData”,虽然会有结果。这是我尝试转换的代码,我的错误是编码部分吗?

let videoDataString = NSString(data: videoData, encoding: NSUTF8StringEncoding)
let videoURL = NSURL(string: String(videoDataString))

最佳答案

首先将您的视频数据保存到文件中,然后尝试将其作为文件 URL 进行访问。 这是一个例子。

 NSString *filePath = [self documentsPathForFileName:@"video.mp4"];
 NSData *videoAsData;   // your data here
 [videoAsData writeToFile:filePath atomically:YES];

 // access video as URL
 NSURL *videoFileURL =  [NSURL fileURLWithPath:filePath];


- (NSString *)documentsPathForFileName:(NSString *)name
{
   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
   NSString *documentsPath = [paths objectAtIndex:0];

   return [documentsPath stringByAppendingPathComponent:name];
}

对于 Swift 3.0:

let filePath = self.documentsPathForFileName("video.mp4")
        let videoAsData = NSData()
        videoAsData.write(toFile: filePath, atomically: true)
        let videoFileURL = NSURL(fileURLWithPath: filePath)

func documentsPathForFileName(name: String) -> String {
        let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
        return documentsPath.appending(name)
    }

关于ios - 如何将视频数据转换为NSURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145262/

相关文章:

swift - 如何从 cellForRowAtIndexPath 更改行高?

ios - iphone 应用程序崩溃 -[UITableView _selectRowAtIndexPath :animated:scrollPosition:notifyDelegate:]

objective-c - 在特定页面的现有 PDF 文档上绘制内容

swift - RxSwit - 来自可观察忽略错误的驱动程序

ios - 如何使我的 ios 应用程序对 wifi 更改事件使用react

ios - getPlaceholderTemplateForComplication() 方法何时被调用?

ios - swift 用户界面 : How to get a Navigation Title aligned with Back Button

iphone - CoreImage、iOS5和速度,为什么CoreImage这么慢?

ios - 等待直到NSURLConnection sendAsynchronousRequest完成

ios - AFNetworking POST 文件失败(echonest?)