当前位置: 首页 > 知识库问答 >
问题:

Cordova检测开关音频模式-内置扬声器至蓝牙扬声器

仉宪
2023-03-14

我用Cordova(7.1.0)构建了一个音乐web应用程序,我使用web音频API来管理声音。我的问题是:

如何检查播放机选择的音频源?内置音频与蓝牙音频。

例如,在iPhone上,在玩游戏时,我可以选择通过设备扬声器(内置扬声器)直接播放声音,也可以切换到蓝牙扬声器。当用户从一种模式切换到另一种模式时,如何通过JavaScript进行检查?

我发现了一个关于监听耳机状态(插入或未插入)的Cordova插件。这适用于有线耳机,但无法检测内置扬声器何时切换到蓝牙扬声器。

我找到了一个关于监听蓝牙状态(连接与否)的Cordova插件。但这并不能告诉我用户何时切换模式。。。

欢迎任何想法!

共有1个答案

单于耘豪
2023-03-14

这个Cordova插件可能是您正在寻找的?https://github.com/saghul/cordova-plugin-audioroute

它应该连接到AVAudioSessionRouteChangeNotify并检测系统音频路由何时更改。根据README,您应该能够添加插件,然后在您的项目中放置一个事件监听器,如下所示:

document.addEventListener('audioroute-changed',
  function(event) {
    console.log('Audio route changed: ' + event.reason);
    // code for stuff you want to do
  }
);

AVAudioSessionRouteChangeNotification在这里也提到了一个类似的问题:在iOS 7中检测(侦听)音频路由更改

AVAudioSessionRouteChangeNotification文档:https://developer.apple.com/documentation/avfoundation/avaudiosessionroutechangenotification

 类似资料:
  • 我正在做一个涉及iOS和蓝牙耳机的个人项目,我遇到了一些问题。我想实现的是一种使用蓝牙的对讲机应用程序。我希望能够连接到蓝牙耳机,并使用内置扬声器播放来自其麦克风的音频。 我已经成功使用蓝牙连接到耳机,但我无法将音频重定向到设备的扬声器。每当我连接并且音频会话首选输入设置为蓝牙耳机时,音频将通过耳机播放,而不是通过扬声器。 如果有人能给我指出正确的方向,甚至给我一些示例代码,那就太棒了。 页(pa

  • 播放音符或者歌曲 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:00:00后,用猫叫声叫醒我

  • 扬声器模块能够录制并播放声音。 净重量:24.5g 体积:48×48×13mm 参数 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 支持录音存储 内置多种音效 配合软件支持AI语音识别 配合WiFi模块支持离线运行"

  • 光环板可以连接 mbuild 的 扬声器 模块进行编程。 1. 扬声器(1)播放音符(C4)以(0.25)拍 指定扬声器播放指定音符,并持续指定拍数。 示例 按下光环板的按钮,扬声器1会播放音符C4,持续0.25拍。 2. 扬声器(1)以(700)赫兹播放声音,持续(1)秒 指定扬声器以指定频率播放声音,单位为赫兹,并持续指定时间。 示例 按下光环板的按钮,扬声器1会播放频率为700赫兹的声音,持

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放