首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSData分配AVAsset

从NSData分配AVAsset
EN

Stack Overflow用户
提问于 2012-12-06 18:46:22
回答 3查看 5K关注 0票数 3

我可以从NSData初始化AVAsset吗?我知道我可以使用下面的函数从url初始化AVData

代码语言:javascript
复制
 [[AVURLAsset alloc] initWithURL:url options:nil];

有没有人能建议我用类似的方法直接从NSData赋值AVAsset

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-06 18:57:43

据我所知,没有。AVAsset表示设备(内部)媒体库中的项目,因此使用自定义数据对其进行初始化没有多大意义。也许值得一提的是,这个类没有NSData的公共初始化器。

我怀疑如果需要的话,你应该重新设计你的代码逻辑。

票数 3
EN

Stack Overflow用户

发布于 2019-05-19 00:27:10

接受的答案是不正确的。

具体实现:

代码语言:javascript
复制
func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool

它必须:

  1. 正确填写loadingRequest.contentInformationRequest。提示,对数据正确使用loadingRequest.contentInformationRequest.contentType = AVFileType.mycontenttype.rawValue
  2. respond

我稍后会发布一些代码,但您可以在谷歌上搜索"AVAssetResourceLoaderDelegate github“以获取示例

票数 1
EN

Stack Overflow用户

发布于 2020-01-19 14:27:07

这是我解决它的另一种解决方案。间接地,我首先将NSData写入/保存到本地目录,然后从该文件路径初始化AVAsset。

代码语言:javascript
复制
AVAsset *asset = [AVAsset assetWithURL:[NSURL fileURLWithPath:locationUrl]];

您可以尝试先将nsdata写入文件路径,然后从该路径初始化到AVAsset。

代码语言:javascript
复制
[videoData writeToFile: locationUrl atomically:YES];

只需确保文件位置URL正确,并测试确认数据是否保存到文件路径,如果在回载时发生任何错误。最后,如果你不再需要你的文件,不要忘记清理它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13741950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档