首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iPhone应用程序中切换扬声器和耳机

如何在iPhone应用程序中切换扬声器和耳机
EN

Stack Overflow用户
提问于 2010-04-18 22:44:16
回答 2查看 8.5K关注 0票数 4

我已经写了一个使用AVAudioPlayer播放音频的应用程序。

我已经实现了一个将音频切换到扬声器的函数:

代码语言:javascript
复制
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);    
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

但当我尝试切换回耳机时,使用以下命令:

代码语言:javascript
复制
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);    
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride); 

它仍然通过扬声器进行路由。

我找不到任何其他方法来引导音频。有没有人能建议我哪里做错了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-12 02:47:17

根据Apple's documentation,音频会话路由覆盖仅在使用kAudioSessionCategory_PlayAndRecord类别时可用。

您可以尝试将类别更改为kAudioSessionCategory_PlayAndRecord,并使用kAudioSessionProperty_OverrideCategoryDefaultToSpeaker属性键路由音频到扬声器。

票数 4
EN

Stack Overflow用户

发布于 2013-05-28 10:47:34

就像Laurent说的,试着像这样使用PlayAndRecord:

代码语言:javascript
复制
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);

使用AVAudioSessionCategoryPlayAndRecord非常重要,否则路由将无法到达扬声器。一旦为音频会话设置了覆盖路由,就可以使用AVAudioPlayer实例并向扬声器发送一些输出。

希望这对其他人有效,就像对我一样。关于这一点的文档是分散的,但Skype应用程序证明了这是可能的。坚持下去,我的朋友们!:)

这里有一些苹果文档:http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html

在页面上搜索kAudioSessionProperty_OverrideAudioRoute

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2662585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档