gpt4 book ai didi

javascript - 除非调用 getUserMedia,否则 Safari 13 中不再播放音频

转载 作者:行者123 更新时间:2023-11-29 22:46:36 24 4
gpt4 key购买 nike

我正在使用 getUserMedia 录制音频,然后允许用户单击一个按钮来收听录音或另一个缓冲区。一年来一切正常,所以我认为我没有违反任何导致 AudioContext 暂停的规则。而且,无论如何,我正在测试 AudioContext 以确保它没有在我的按钮处理程序中暂停。

这在所有具有许多浏览器的现代系统上都运行良好。但是,这不是在 iOS 的 Safari 13 中播放音频。它会像播放音频一样从 promise 返回,但在我再次调用 getUserMedia 之前没有任何声音。

作为实验,我将以下行放在我的按钮处理程序的顶部:

navigator.mediaDevices.getUserMedia({
audio: {
echoCancellation: {ideal: false},
}
});

而且有效!

但是,为什么?我对该解决方案感到不满意,因为我不确定浏览器为什么需要它。我必须请求麦克风播放任何声音,这对我来说没有意义。

我唯一的线索是,一旦我执行了 getUserMedia,我就会在 Safari 上保持录音打开(我这样做是因为 Safari 超时 - 当我请求麦克风时,它会弹出一个向用户显示允许使用麦克风的对话框。有时用户可能需要 90 秒才能按“录音”,如果我不让麦克风保持打开状态,它会再次弹出对话框。)

有人知道发生了什么事吗?而且,我还没有找到任何有关 Safari 和音频的技术文章。除了标准的 MDN 之外还有什么吗?

最佳答案

IOS13 还破坏了我们的一个应用程序。多年来一直运行良好。不会抛出任何错误,我们也没有违反任何规则。这是我的帖子的链接: Has IOS13 broken <audio> tags used as audio buffers connected to the audio context?

尽管它是对 api 的不同使用,但我相信它是相关的。 Apple 显然在这个新版本中打破了一些东西。

关于javascript - 除非调用 getUserMedia,否则 Safari 13 中不再播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com