我可以从NSData初始化AVAsset吗?我知道我可以使用下面的函数从url初始化AVData
[[AVURLAsset alloc] initWithURL:url options:nil];有没有人能建议我用类似的方法直接从NSData赋值AVAsset
发布于 2012-12-06 18:57:43
据我所知,没有。AVAsset表示设备(内部)媒体库中的项目,因此使用自定义数据对其进行初始化没有多大意义。也许值得一提的是,这个类没有NSData的公共初始化器。
我怀疑如果需要的话,你应该重新设计你的代码逻辑。
发布于 2019-05-19 00:27:10
接受的答案是不正确的。
具体实现:
func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool它必须:
loadingRequest.contentInformationRequest.contentType = AVFileType.mycontenttype.rawValue我稍后会发布一些代码,但您可以在谷歌上搜索"AVAssetResourceLoaderDelegate github“以获取示例
发布于 2020-01-19 14:27:07
这是我解决它的另一种解决方案。间接地,我首先将NSData写入/保存到本地目录,然后从该文件路径初始化AVAsset。
AVAsset *asset = [AVAsset assetWithURL:[NSURL fileURLWithPath:locationUrl]];您可以尝试先将nsdata写入文件路径,然后从该路径初始化到AVAsset。
[videoData writeToFile: locationUrl atomically:YES];只需确保文件位置URL正确,并测试确认数据是否保存到文件路径,如果在回载时发生任何错误。最后,如果你不再需要你的文件,不要忘记清理它们。
https://stackoverflow.com/questions/13741950
复制相似问题