![](/img/trans.png)
[英]How can I continually detect if the focus is set? (Javascript, jQuery)
[英]Javascript detect if volume can be set
你能检测到是否可以用 javascript 设置音量吗? 例如,看看您是否在 ios 浏览器上(但如果可以设置音量,则不检测 ios)。 我尝试过这样的事情,但它总是返回 true。
如果我在 ios 上,我想隐藏播放器中的音量按钮。 我知道我可以检测 ios,但我想更进一步,并可能检测是否可以更改音量。
var audio = document.createElement("audio");
if(!audio) return false;
audio.volume = 0;
return audio.volume == 0 ? true : false;
在 iOS Safari 上遇到同样的问题。 我可以建议使用volumechange
事件侦听器的异步变体。
function testMediaElementVolumeSetterAsync () {
const timeoutPromise = new Promise(resolve => setTimeout(resolve, 1e3, false))
const promise = new Promise((resolve) => {
let video = document.createElement('video')
const handler = () => {
video.removeEventListener('volumechange', handler)
video = null
resolve(true)
}
video.addEventListener('volumechange', handler)
video.volume = 0.5
})
return Promise.race([promise, timeoutPromise])
}
我只能想到的是监听volumechange
事件(它具有普遍支持),然后像你正在做的那样设置音量(根据MDN在许多浏览器中都有未知的支持),看看它是否会触发?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.