2012-09-11 80 views
5

我有一個使用avaudioplayer播放的音頻文件,我希望能夠在用戶按下按鈕時播放音頻時在設備接收器或揚聲器上播放聲音。我怎樣才能做到這一點 ?目前它只是在音頻開始播放之前播放任何內容。當音頻播放時更改音頻路徑

回答

6
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride); 
Assert(result == kAudioSessionNoError); 
+0

我不認爲蘋果會批准這個 – user1286653

+0

請注意,這種方法現在已經過時(因爲iOS 6中) – CupawnTae

1

您可以添加MPVolume控制(link to documentation)到你的用戶界面和設置showsVolumeSlider = NO和showsRouteButton = YES。

用戶將有一個路由按鈕將音頻路由到他們選擇的設備。

2

的iOS 6+版本

NSError* error; 

AVAudioSession* session = [AVAudioSession sharedInstance]; 

[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];