iOS Safari 在使用麦克风时降低音频播放音量

问题描述 投票:0回答:1

我一直在尝试使用网络音频 API 录制和播放来自服务器的音频响应。但是当麦克风正在使用或什至以编程方式停止时,播放音量非常低。这似乎是 iPhone 的一项功能,但当您在浏览器中运行类似应用程序的语音助手时,它真的很烦人。这是我尝试使用 javascript 的方法:

stream.getTracks().forEach(track => track.stop()) // Mic muted but still volume is low

stream.forEach(function(track) {
    track.enabled = false; // Mic muted but still volume is low

});

撤销麦克风权限是可行的,但每次用户尝试录音时都询问权限会很烦人。有没有其他有效的方法可以暂时停止麦克风或恢复原始播放音量?

javascript ios safari mobile-safari web-audio-api
1个回答
1
投票

音频会话API

...可能是最适合您的解决方案。

有多种音频会话类型用于不同的目的。默认值为

auto
,在您的用例中,您可能希望将其设置为
play-and-record
,因为它允许您同时使用麦克风和扬声器:

navigator.audioSession.type = 'play-and-record';

您可以在这里进一步阅读:https://w3c.github.io/audio-session/

注意:在撰写本文时 - 音频会话 API 处于“编辑草案”状态,因此您应该在依赖它之前检查该特定的

navigator
属性。但它确实适用于 iOS 16.4.1 上的 Safari。

© www.soinside.com 2019 - 2024. All rights reserved.