iPhone PlayAndRecord会使所有系统音频静音吗?

时间:2010-03-23 02:07:07

标签: iphone iphone-sdk-3.0 audio audiosessionservices

在我的iPhone应用程序中,我正在尝试录制音频并同时播放iPod音乐,因此我将音频会话类别设置为kAudioSessionCategory_PlayAndRecord。但是当我设置它时,所有系统音频(包括振动)都不再起作用,尽管iPod音频仍能正常工作。有谁知道这是SDK中的错误还是其他什么,或者如何绕过它?请帮忙!

提前致谢!

1 个答案:

答案 0 :(得分:3)

查看kAudioSessionOverrideAudioRoute的文档告诉我们PlayAndRecord类别的默认设置是将音频路由到接收器(当您在通话时使用的扬声器)。是否有可能将所有音频都路由到那个音频而你没有把耳朵放在那里听不到声音?

如果您想要更改音频的位置,您需要调用AudioSessionSetProperty,并将常量传递给您指定音频的去向。这些常量是

kAudioSessionOverrideAudioRoute_None ,指定您希望将音频路由到接收器(就像现在一样),或

kAudioSessionOverrideAudioRoute_Speaker ,指定音频应路由到手机底部的扬声器

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