我设法将一帧电影的视频轨道逐帧加载到OpenGL
纹理中AVFoundation
。我按照答案中描述的步骤进行了操作:iOS4: how do I use video file as an OpenGL texture?
并从GLVideoFrame
的{{1}}样本中获取了一些代码,可以下载here。
如何与视频同步播放电影的音轨?我认为在单独的播放器中播放它并不是一个好主意,而是使用相同WWDC2010
的音轨。
AVAsset
我通过
检索了一个videoframe及其在CADisplayLink回调中的时间戳AVAssetTrack* audioTrack = [[asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
其中CMSampleBufferRef sampleBuffer = [self.readerOutput copyNextSampleBuffer];
CMTime timestamp = CMSampleBufferGetPresentationTimeStamp( sampleBuffer );
的类型为readerOutput
如何获取相应的音频样本? 以及如何玩它们?
编辑:
我看了一下,我认为,最好使用AVAssetReaderTrackOutput*
中的AudioQueue
,使用此处描述的方法:AVAssetReader and Audio Queue streaming problem
AudioToolbox.framework
:AVFoundation
中还有一个音频播放器。但我不确切地知道应该如何将数据传递给AVAudioPlayer
- 初始化程序,它需要initWithData
。此外,我认为这不是我的最佳选择,因为我必须为每个新的音频样本块创建一个新的NSData
- 实例。
还有其他建议吗?
从AVAudioPlayer
获取原始音频样本的最佳方法是什么?
答案 0 :(得分:2)
你想做AV合成。您可以将多个媒体源(暂时同步)合并到一个输出中。