首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AVFoundation:视频转OpenGL纹理工作-如何播放和同步音频?

AVFoundation:视频转OpenGL纹理工作-如何播放和同步音频?
EN

Stack Overflow用户
提问于 2011-08-27 18:55:03
回答 1查看 7.7K关注 0票数 17

我已经设法用AVFoundation将一帧又一帧电影的视频轨道加载到OpenGL纹理中。我遵循了这里的答案中描述的步骤:iOS4: how do I use video file as an OpenGL texture?,并从WWDC2010GLVideoFrame样例中提取了一些代码,可以从here下载。

如何同步播放电影的音轨和视频?我认为在一个单独的播放器中播放它不是一个好主意,而是使用同一个AVAsset的音轨。

AVAssetTrack* audioTrack = [[asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];

我通过CADisplayLink-callback检索一个视频帧和它的时间戳

CMSampleBufferRef sampleBuffer = [self.readerOutput copyNextSampleBuffer];
CMTime timestamp = CMSampleBufferGetPresentationTimeStamp( sampleBuffer );

其中readerOutput的类型为AVAssetReaderTrackOutput*

如何获取对应的音频样本?那该怎么玩呢?

编辑:

我看了一下,我认为,最好的方法是通过这里描述的方法从AudioToolbox.framework中使用AudioQueueAVAssetReader and Audio Queue streaming problem

AVFoundation中还有一个音频播放器:AVAudioPlayer。但我不知道该如何将数据传递给期望NSDatainitWithData-initializer。此外,我不认为这是我的最佳选择,因为据我所知,必须为每个新的音频样本块创建一个新的AVAudioPlayer-instance。

还有其他建议吗?播放我从AVAssetReaderTrackOutput获得的原始音频样本的最佳方式是什么

EN

回答 1

Stack Overflow用户

发布于 2012-04-11 03:57:18

你想做一个AV作曲。您可以将多个临时同步的媒体源合并到一个输出中。

http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVComposition_Class/Reference/Reference.html

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

https://stackoverflow.com/questions/7214074

复制
相关文章

相似问题

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