AVAssetReaderTrackOutput

AVAssetReaderTrackOutput

我在程序中使用以下代码从录音中提取样本。我以为我理解了此过程,但是当我阅读《 Apples开发人员指南》时,我并不完全了解AVAssetReaderAVAssetReaderTrackOutput如何协同工作。
AVAssetReaderTrackOutput是否包含AVAssetReader读取的跟踪数据?当我像在这里一样将输出添加到阅读器时,[reader addOutput:output];是否将输出视为阅读器使用的音频数据源?在开发人员指南中,它说addOutput“将给定的输出添加到接收器”。接收者到底是什么?

AVAssetReader *reader = [[AVAssetReader alloc] initWithAsset:self.audioAsset error:&error];
AVAssetTrack *songTrack = [audioTrackArray objectAtIndex:0];
AVAssetReaderTrackOutput *output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:outputSettingsDict];
[reader addOutput:output];

最佳答案

AVAssetReader正在保存数据,要访问某些数据,您需要读取轨道。音频和视频是不同的轨道。

要获取数据,您需要分配VAssetReaderTrackOutput。

“接收者”是函数中对象的首字母缩写(精确的是“消息”)。所以

[receiver sendMessage:data];

这是电影示例代码:http://www.7twenty7.com/blog/2010/11/video-processing-with-av-foundation

10-06 15:16