首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AVFoundation捕获和播放新媒体类型

问使用AVFoundation捕获和播放新媒体类型
EN

Stack Overflow用户
提问于 2011-09-19 20:28:41
回答 1查看 716关注 0票数 3

我有一个非常不标准的AVFoundation问题,作为一个相对于iOS世界的新手,我真的需要一些专家的指导-

我正在开发一个应用程序,可以让用户记录我需要用AVMutableComposition编程安排的音频片段。事情是这样的,除了音频轨道,我想捕获和保存加速度计数据,并让它与声音同步。通常,AVFoundation用于已知的媒体类型,如静止照片、音频和视频,但我想知道使用此框架捕获诸如加速度计数据是否可行。这将使我更容易将传感器数据与捕获的音频同步,特别是当将部分与AVMutableComposition放在一起时。

以下是我需要完成的任务:

  1. 将加速度计数据记录为AVAsset/AVAssetTrack,这样我就可以将它插入AVMutableComposition
  2. 中,允许在自定义视图中回放加速度计数据,同时使用
  3. 保存AVMutableComposition到磁盘,包括音频和加速度计磁道。最好使用像Quicktime

这样的标准容器

对于第1和第3部分,我将使用AVAssetReader、AVAssetReaderOutput、AVAssetWriter、AVAssetWriterInput类从加速度计中捕获,但没有多少Cocoa方面的经验,我正在努力弄清楚我需要扩展什么。此时,我想我需要子类AVAssetReaderOutput和AVAssetWriterInput,并使用CMSampleBuffers来允许原始加速度计数据和AVAsset之间的转换。我注意到,这些类中的大多数只有一个私有成员引用具体的实现(即AVAssetReaderInternal或AVAssetWriterInputInternal)。是否有人知道这是一种常见的模式,还是它对于编写自定义实现意味着什么?

我还没有仔细考虑过第2部分。我目前正在使用一个AVPlayer来播放音频,但我不知道如何将它从资产中分发给我的自定义加速度计视图。

为这样一个开放的问题道歉-我想我更多的是寻求指导,而不是一个具体的解决方案。对于AVFoundations体系结构是否可能发生这种情况,有任何直觉吗?

EN

回答 1

Stack Overflow用户

发布于 2011-09-21 11:15:12

我将使用NSmutableArray并将加速器数据和时间代码存储在那里。所以当你回放的时候,你可以从视频播放器中得到时间,并使用它来查找数组中的加速器数据。由于数据是作为时间线存储的,所以不必搜索整个数组。只要在数组中向前一步,检查时间数据是否一致就足够了。

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

https://stackoverflow.com/questions/7476926

复制
相关文章

相似问题

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