2012-09-11 82 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];