HTML5音频输出修补

Cha*_*III 4 javascript audio html5 html5-audio

我想知道是否有办法在HTML5/JavaScript中控制音频输出设备修补?例如,如果用户希望我的网络应用程序中有一个声音可以用于一个音频设备,而另一个声音来自不同的音频设备.我知道用户可以在他们的计算机上设置默认输出设备,但对于我正在处理的网络应用程序,我希望他们能够在播放其他声音时将单个声音发送到各个输出,类似于下面的界面(来自一个名为QLab的程序).

我觉得明显的答案是否定的,我不想诉诸于使用flash或java.我可以写一些与javascript接口的浏览器插件.

QLab截图

Cha*_*III 6

因此,在收到基本上零有用的答案 - 并且在网上找不到其他有用的信息之后,我想我想出了一些我们作为开发人员需要从浏览器供应商和w3c开始请求的东西.我们需要能够以类似的方式请求用户进行硬件访问,以便我们可以请求访问用户的位置,或者我们如何请求发送用户推送通知.

在允许Web开发人员通过硬件进行与本机应用程序开发人员相同的控制之前,我们将比我们为用户提供的内容处于极大的劣势.我不想让我的用户安装第三方/第四方插件来启用对I/O的更多控制/访问.用户不应该被淹没在保留更多软件而不仅仅是他们的网络浏览器更新,以使网站运行良好和安全.而且,我认为不应该用HTML,JavaScript,CSS和PHP等多种语言编写,以获得用户从本机应用程序获得的相同体验.

我不知道我们如何处理浏览器供应商,但我觉得开始这样做会很好.


Arn*_*der 5

我建议你看一下Web Audio API: Specs --- Tutorial

Web音频API中有目标属性.然而,这是一个只读属性...所以不可设置.

这里:

目标属性始终与声音的默认硬件输出相关,无论是通过扬声器,连接耳机还是蓝牙耳机.


Mag*_*ios 5

我知道这有点旧,但是就在今年,添加了一个名为“ setSinkId”的方法,您可以将其应用于媒体元素(视频,音频)以设置将音频输出到的设备。

$('#video-element').setSinkId('default');
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLMediaElement/setSinkId

尽管目前看来只有Chrome支持它。我尚未在Firefox或其他网络浏览器上进行过测试。