gpt4 book ai didi

iphone - AVAudioSession是否自动重新路由iPhone音频?

转载 作者:行者123 更新时间:2023-12-02 23:00:02 25 4
gpt4 key购买 nike

我正在研究的cocos2d游戏中使用AVAudioRecorder的AVAudioSession出现问题。

我正在尝试使用一个简单的AVAudioRecorder示例捕获麦克风输入,以检测用户何时在麦克风中发出声音(声音本身并不重要,因为我正在录制到/ dev / null中)。

这是我的麦克风设置代码:

    NSURL *newURL = [[NSURL alloc] initFileURLWithPath:@"/dev/null"];

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];

NSDictionary *recordSettings =
[[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithFloat: 22050.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityLow],
AVEncoderAudioQualityKey,
nil];

micInput = [[AVAudioRecorder alloc] initWithURL:newURL settings:recordSettings error:nil];
[newURL release];
[recordSettings release];
[micInput setMeteringEnabled:YES];

在具有上述代码的iPhone上,场景从所有音频(声音效果,背景音乐等)以非常低的音量开始播放,因为它仅通过电话扬声器而不是外部扬声器播放。当我在iPad或iPod Touch上对此进行测试时,背景音频会按预期通过外部扬声器播放。这是一个问题,因为在游戏的这一特定部分中,在iPhone版本上玩游戏时,游戏的体积会急剧下降。

当我注释掉AVAudioSession设置行时,声音通过外部扬声器播放,但是我当然不能再输入麦克风了。有没有解决此问题的方法或解决方案?我需要能够使用AVAudioRecorder进行录制,但仍然需要从iPhone的外部扬声器输出音频。

谢谢!

最佳答案

设置音频 session 后,请尝试以下类似的操作:

         UInt32 ASRoute = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute,
sizeof (ASRoute),
&ASRoute
);

关于iphone - AVAudioSession是否自动重新路由iPhone音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787991/

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