gpt4 book ai didi

iphone - 使用 AudioQueue 录制时使用 MPMoviePlayerController 播放视频

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:25 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它需要使用 MPMoviePlayerController 从 URL 播放视频,同时使用 AudioQueue 从麦克风获取音频样本以进一步分析它们。

问题是我无法在视频开始播放时(以及结束时)进行录制。只是音频采样停止。相反,如果我禁用视频播放,录音就会顺利进行。我尝试使用属性 kAudioSessionProperty_OverrideCategoryMixWithOthers 设置 AudioSession 但没有成功(它返回错误)。此外,我认为在使用 AudioQueue 时在 AudioSession 中设置属性是没有用的。即使为 MPMoviePlayerController 设置 useApplicationAudioSession = NO 也没有任何帮助。

特此创建播放器的核心代码:

   audioManager = [[AudioController alloc] init]; 
//setting AudioQueue: audio buffer, sample rate, format ID (PCM), bits per channel
audioManager.delegate = self;
[audioManager startAudioRecording]; //starts recording with AudioQueue
self.playerVC = [[[MPMoviePlayerController alloc] init] autorelease];
layerVC.view.frame = self.viewPlayer.bounds;
[self.viewPlayer addSubview:playerVC.view];
playerVC.useApplicationAudioSession = YES; //if NO nothing changes
[playerVC setContentURL:[NSURL URLWithString:@"http://www......."]];
[playerVC prepareToPlay];
[playerVC play];

最佳答案

你走对了路。首先,将 kAudioSessionProperty_OverrideCategoryMixWithOther 设置为 true。这将允许您的应用的声音与来自其他应用的声音混合。

UInt32 allowMixing = true;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixing), &allowMixing);

之后,您需要将 MPMoviePlayerController 设置为不使用您应用的 AudioSession:

[yourMPMoviePlayerControllerInstance setUseApplicationAudioSession:NO];

关于iphone - 使用 AudioQueue 录制时使用 MPMoviePlayerController 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com