我有一个视频正在从我的服务器获取并作为数据接收。我试图将原始数据覆盖到 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/