从AVPlayer中当前播放的视频录制流媒体音频

时间:2015-01-23 12:03:38

标签: objective-c avfoundation

许多类似的问题,但并非完全相同。

我目前的代码设置是通过AVPlayer播放视频。

我想要做的是以某种方式提取流媒体视频的音频并最终与麦克风输入合并(使用AVAudioMixer?)。 (想想卡拉OK应用程序)所以当用户播放录音时,它只会播放视频中的音频和麦克风的录音。

我认为AVAudioEngine是要走的路,但我不能为我的生活做好准备。

所以我的问题是如何从AVPlayer中当前正在播放的视频中提取或录制音频,重要的是哪个是使用在线资源(youtube)进行流媒体播放。

提出问题的另一种方式可以如下

我有一个广播应用程序和(想想tuneIn Radio),我想录制流媒体音频。

1 个答案:

答案 0 :(得分:3)

一个来源建议您在AVPlayerAVAudioRecorder同时启动时收听音频路由更改。我们的想法是使用AudioSessionAddPropertyListener(...)并监控kAudioSessionProperty_AudioRoute音频路由,然后在收到AVPlayer路由时开始录制。

参考:Playing video with AVPlayer and recording sound with AVAudioRecorder simultaneously

另一种解决方案是使用MTAudioProcessingTapref),使用KVObserving设置流处理程序,并录制流媒体视频的音频通道。

参考:Recording Live Audio Streams on iOS

另一种解决方案是与代表一起启动类别AVAudioSessionCategoryPlayAndRecord的音频会话,并在开始播放视频后启动录音。

参考:how can i record a song which is playing with AVPlayer and an wav file at a same time?