12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*
- * Copyright (c) 2022 The adapter.js project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.shimSelectAudioOutput = shimSelectAudioOutput;
- function shimSelectAudioOutput(window) {
- // Polyfillying only makes sense when setSinkId is available
- // and the function is not already there.
- if (!('HTMLMediaElement' in window)) {
- return;
- }
- if (!('setSinkId' in window.HTMLMediaElement.prototype)) {
- return;
- }
- if (!(window.navigator && window.navigator.mediaDevices)) {
- return;
- }
- if (!window.navigator.mediaDevices.enumerateDevices) {
- return;
- }
- if (window.navigator.mediaDevices.selectAudioOutput) {
- return;
- }
- window.navigator.mediaDevices.selectAudioOutput = function () {
- return window.navigator.mediaDevices.enumerateDevices().then(function (devices) {
- return devices.filter(function (d) {
- return d.kind === 'audiooutput';
- });
- });
- };
- }
|