gpt4 book ai didi

ios - 如何在不使用 AudioSessionSetProperty 的情况下将音频路由到扬声器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:30 28 4
gpt4 key购买 nike

由于 AudioSessionSetProperty 可能会被 弃用,我试图找到一个代码示例,说明如何使用其他方式将音频路由到 扬声器 .

之前我做了以下事情:

-(void)setSpeakerEnabled
{
debugLog(@"%s",__FUNCTION__);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;

AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute,
sizeof (audioRouteOverride),
&audioRouteOverride
);
}

试图获得相同的结果,但没有调用 AudioSessionSetProperty

最佳答案

在每个 iOS 版本中,更多的 audioSession 属性被迁移到 AVFoundation,因此您应该在可用时优先使用它们。

自 iOS 6 kAudioSessionProperty_OverrideAudioRoute 在 AVAudioSession 中由方法表示

- (BOOL)overrideOutputAudioPort:error:

可用值为 AVAudioSessionPortOverrideNoneAVAudioSessionPortOverrideSpeaker

这是一个完全通过 AVFoundation 配置的示例 Audio Session :

 - (void)configureAVAudioSession
{
// Get your app's audioSession singleton object
AVAudioSession *session = [AVAudioSession sharedInstance];

// Error handling
BOOL success;
NSError *error;

// set the audioSession category.
// Needs to be Record or PlayAndRecord to use audioRouteOverride:

success = [session setCategory:AVAudioSessionCategoryPlayAndRecord
error:&error];

if (!success) {
NSLog(@"AVAudioSession error setting category:%@",error);
}

// Set the audioSession override
success = [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker
error:&error];
if (!success) {
NSLog(@"AVAudioSession error overrideOutputAudioPort:%@",error);
}

// Activate the audio session
success = [session setActive:YES error:&error];
if (!success) {
NSLog(@"AVAudioSession error activating: %@",error);
}
else {
NSLog(@"AudioSession active");
}

}

更新

自 iOS 7.0 起, Audio Session 服务 C API 现在已完全弃用,取而代之的是 AVAudioSession。

更新 2

- (BOOL)overrideOutputAudioPort:error:  

是一种方法,而不是属性,它设置了一个底层只写 UInt32 值。您无法获取当前值,您应该将该方法视为设置临时状态。如果音频路由更改或中断,该属性将重置为其默认值 (AVAudioSessionPortOverrideNone)。您可以通过 AVAudioSessionDelegate 获取中断通知。

关于ios - 如何在不使用 AudioSessionSetProperty 的情况下将音频路由到扬声器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885497/

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