我的應用程序使用麥克風並輸出音頻,因此我將音頻會話設置爲播放和錄製類別,但這似乎禁用了Airplay。如果將類別設置爲Play,則Airplay可以很好地處理我的輸出(但顯然輸入不起作用)。AVAudioSessionCategoryPlayAndRecord與Airplay
我試着重寫輸出路由到揚聲器,以防萬一它需要通過Airplay輸出,但沒有喜悅。
任何想法?
我的應用程序使用麥克風並輸出音頻,因此我將音頻會話設置爲播放和錄製類別,但這似乎禁用了Airplay。如果將類別設置爲Play,則Airplay可以很好地處理我的輸出(但顯然輸入不起作用)。AVAudioSessionCategoryPlayAndRecord與Airplay
我試着重寫輸出路由到揚聲器,以防萬一它需要通過Airplay輸出,但沒有喜悅。
任何想法?
如果您想更改音頻的播放位置,您需要調用AudioSessionSetProperty並將常數傳遞給您,以指定您想要音頻的位置。這些常量是
kAudioSessionOverrideAudioRoute_None,指定您希望的音頻被路由到接收方(單曲,如果這就是它是怎麼回事),或
kAudioSessionOverrideAudioRoute_Speaker,它指定了音頻應該被路由到揚聲器在電話的底部。
你可以試試這個代碼
// Set AVAudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
// Change the default output audio route
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);
AudioSessionSetProperty已棄用 – mark
什麼AirPlay的設備是你想使用?它有麥克風嗎?
如果不是,則使用PlayAndRecord類別時,iOS不會將其作爲選項顯示,因爲該設備無法播放和記錄。它會在使用Play類別時顯示。
此外,如果您使用的設備是藍牙設備,是否將AVAudioSessionCategoryOptionAllowBluetooth設置爲YES?
這是正確的答案。 – mark
從音頻會話編程指南>與分類>Choosing Categories and Modes for AirPlay工作:
只有特定的類別和模式支持AirPlay的。以下類別支持的Airplay兩者的鏡像和非鏡像版本:
AVAudioSessionCategorySoloAmbient
AVAudioSessionCategoryAmbient
AVAudioSessionCategoryPlayback
的AVAudioSessionCategoryPlayAndRecord
類別僅支持鏡像的Airplay。
我們可以在設置音頻會話的位置看到代碼嗎? –