播放音频时更改音频路由

Posted

技术标签:

【中文标题】播放音频时更改音频路由【英文标题】:change audio route when the audio is playing 【发布时间】:2012-09-11 23:57:57 【问题描述】:

我有一个使用 avaudioplayer 播放的音频文件,我希望能够在用户按下按钮时播放音频时在设备接收器或扬声器上播放声音。我怎样才能做到这一点 ?目前它只播放在音频开始播放之前选择的任何内容。

【问题讨论】:

【参考方案1】:
UInt32 audioRouteOverride = kAudiosessionOverrideAudioRoute_Speaker;
OSStatus result = AudioSessionSetProperty( kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride );
Assert(result == kAudioSessionNoError);

【讨论】:

我不认为苹果会批准这个 请注意,此方法现已弃用(iOS 6 起)【参考方案2】:

iOS 6+ 版本

NSError* error;

AVAudioSession* session = [AVAudioSession sharedInstance];

[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];

【讨论】:

【参考方案3】:

您可以将 MPVolume 控件 (link to documentation) 添加到您的用户界面并设置 showsVolumeSlider = NO 和 showsRouteButton = YES。

用户将有一个路由按钮将音频路由到他们选择的设备。

【讨论】:

以上是关于播放音频时更改音频路由的主要内容,如果未能解决你的问题,请参考以下文章

播放运行服务器 url 音频的媒体播放器时 UI 更改停止

在 vue 中构建音频播放器;如何在更改绑定后开始播放音频:src?

当 MediaPlayer 完成播放第一个音频时,MediaPlayer 更改数据源错误

播放音频时更改图片(jQuery、HTML5)

音频队列 |在 audioQueue 运行时更改音频设备

音频设备测试无法播放声音