2010-03-23 78 views
0

在我的iPhone應用程序中,我嘗試錄製音頻並同時播放iPod音樂,因此我將音頻會話類別設置爲kAudioSessionCategory_PlayAndRecord。但是,當我設置這個時,所有系統音頻(包括振動)不再工作,雖然iPod音頻仍然工作。有誰知道這是SDK中的錯誤還是其他問題,或者如何解決它?請幫忙!iPhone PlayAndRecord將所有系統音頻靜音?

在此先感謝!

回答

3

查看kAudioSessionOverrideAudioRoute的文檔告訴我們,PlayAndRecord類別的默認值是將音頻路由到接收器(當您正在通話時使用揚聲器)。是否有可能所有的音頻都被傳送到了那個地方,而你卻無法聽到沒有把你的耳朵放在那裏?

如果要更改音頻的播放位置,您需要調用AudioSessionSetProperty,並向其傳遞常量,指定您想要音頻的位置。這些常量是

kAudioSessionOverrideAudioRoute_None,指定您希望的音頻被路由到接收器(因爲它是現在),或

kAudioSessionOverrideAudioRoute_Speaker,它指定了音頻應該被路由到揚聲器在手機的底部

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