我正在开发一个应用程序,我想在其中将音频输出重定向到电话扬声器,但我不知道如何以编程方式执行此操作。
有什么想法吗?
您无法通过您的应用打开/关闭扬声器。但是,您可以感觉到设备的静音开关。通过它您可以知道扬声器的当前状态。 This Question将引导您找到解决方案。
为了完整起见,我把答案贴在这里..
// "Ambient" makes it respect the mute switch
// Must call this once to init session
if (!gAudioSessionInited)
{
AudioSessionInterruptionListener inInterruptionListener = NULL;
OSStatus error;
if ((error = AudioSessionInitialize (NULL, NULL, inInterruptionListener, NULL)))
{
NSLog(@"*** Error *** error in AudioSessionInitialize: %d.", error);
}
else
{
gAudioSessionInited = YES;
}
}
SInt32 ambient = kAudioSessionCategory_AmbientSound;
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (ambient), &ambient))
{
NSLog(@"*** Error *** could not set Session property to ambient.");
}
更新: 插入耳机时,您需要覆盖 AudioRoute 以打开扬声器。使用以下代码。
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
确保在 Xcode 中包含 AudioToolbox 库。我想它会解决你的问题..
如果需要更多信息,请告诉我..
关于ios - 是否可以以编程方式将音频输出重定向到 iOS 中的手机扬声器或耳机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22550744/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |