Chr*_*ris 17 javascript media-player audio-player
是否有一种全局方法可以检测音频何时在浏览器中播放或开始播放。
类似的想法 if(window.mediaPlaying()){...
没有将代码绑定到特定元素?
编辑:这里重要的是无论音频来自何处,都能够检测到任何音频。无论是来自 iframe、视频、Web Audio API 等。
Tro*_*bol 10
没有人应该使用它,但它有效。
基本上,我发现访问整个窗口音频的唯一方法是使用MediaDevices.getDisplayMedia()。
从那里可以将MediaStream馈送到AnyalizerNode 中,该节点可用于检查音频音量是否大于零。
仅适用于 Chrome 和 Edge(仅在 Linux 上的 Chrome 80 中测试)
的jsfiddle用<video>
,<audio>
和YouTube!
重要的代码位(由于代码段 iframe 上的功能策略,无法在工作代码段中发布):
var audioCtx = new AudioContext();
var analyser = audioCtx.createAnalyser();
var bufferLength = analyser.fftSize;
var dataArray = new Float32Array(bufferLength);
window.isAudioPlaying = () => {
analyser.getFloatTimeDomainData(dataArray);
for (var i = 0; i < bufferLength; i++) {
if (dataArray[i] != 0) return true;
}
return false;
}
navigator.mediaDevices.getDisplayMedia({
video: true,
audio: true
})
.then(stream => {
if (stream.getAudioTracks().length > 0) {
var source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);
document.body.classList.add('ready');
} else {
console.log('Failed to get stream. Audio not shared or browser not supported');
}
}).catch(err => console.log("Unable to open capture: ", err));
Run Code Online (Sandbox Code Playgroud)
小智 0
我一直在谷歌寻找解决方案,但我还没有找到任何东西。也许您可以仅在播放音频时检查一些具有 X 值的数据。如果您有一些开始播放音频文件的按钮,也许您可以通过在代表上添加一些事件侦听器来确定音频正在播放。按钮...
也许像向“音频”标签添加事件侦听器之类的东西?如果我没记错的话,音频标签有一个“暂停”属性...现在我只记得音频有“暂停”属性...
另外,您可能想检查此主题HTML5 检查音频是否正在播放?
我五秒前才找到它 jaja
归档时间: |
|
查看次数: |
9263 次 |
最近记录: |