我使用Cordova (7.1.0)构建了一个音乐网络应用程序,我使用web audio API来管理声音。我的问题是:
如何查看播放器选择的音频源?内置音频VS蓝牙音频。
例如在iPhone上,在玩游戏时,我可以选择直接通过我的设备扬声器(内置扬声器)播放声音,或者我可以切换到我的蓝牙扬声器。当用户从一种模式切换到另一种模式时,我如何通过JavaScript进行检查?
我发现了Cordova plugin有关收听耳机状态(已插入或未插入)的信息。这适用于有线耳机,但它无法检测内置扬声器何时切换到蓝牙扬声器。
我发现了Cordova plugin关于收听蓝牙状态(已连接或未连接)的问题。但这并没有告诉我用户何时切换模式......
欢迎任何想法!
答案 0 :(得分:1)
这个Cordova插件可能正是您要找的? https://github.com/saghul/cordova-plugin-audioroute
它应该挂钩到AVAudioSessionRouteChangeNotification并检测系统音频路由何时发生变化。根据自述文件您应该能够添加插件,然后在项目中放置一个事件监听器,如下所示:
document.addEventListener('audioroute-changed',
function(event) {
console.log('Audio route changed: ' + event.reason);
// code for stuff you want to do
}
);
AVAudioSessionRouteChangeNotification在这里也提到了一个类似的问题: Detect (listen to) audio route change in iOS 7
AVAudioSessionRouteChangeNotification文档: https://developer.apple.com/documentation/avfoundation/avaudiosessionroutechangenotification