我正在测试更改视频的音频增益。我创建了一个示例 HTML 页面,视频文件与 HTML 文件位于同一目录中。没有网络服务器;我刚刚在本地磁盘上创建了该文件并使用 FireFox 打开了它。代码在下面,但是当我点击按钮时,我得到了
并且音频被静音了。我怎样才能解决这个问题?我在这里搜索并找到了 this ,答案是“解决方案是将 crossOrigin="anonymous"属性添加到相应的音频元素。但这似乎不起作用。
<script crossOrigin="anonymous">
function gain(value)
{
var vid = document.getElementById("testvideo");
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var gainNode = audioCtx.createGain();
gainNode.gain.value = value;
var source = audioCtx.createMediaElementSource(vid);
...
}
</script>
</head>
<body>
<video id="testvideo" width="640", height="360" controls>
<source src="sample.webm" type="video/mp4" crossOrigin="anonymous"/>
</video>
<div>
<button onclick="gain(2)">Gain 2</button>
</div>
最佳答案
不确定这是否能解决您的问题,但是:
这里 :
Firefox WebAudio createMediaElementSource not working
我有同样的错误,我将 crossorigin 放在音频标签中,它似乎有效:
<div class= fph id=fph align=center>
<canvas id='canvas'></canvas>
<audio crossorigin="anonymous" src="<?php
$toevallegnummer = rand(1,3);
if ($toevallegnummer == 1){echo "https://res.cloudinary.com/ddxo40bkm/video/upload/v1582653810/alleycat/shorty.ogg";}
if ($toevallegnummer == 2){echo "https://res.cloudinary.com/ddxo40bkm/video/upload/v1582653811/alleycat/raveretro.ogg";}
if ($toevallegnummer == 3){echo "https://res.cloudinary.com/ddxo40bkm/video/upload/v1582653811/alleycat/raveretrorevisedloop.ogg";}
?>" id="audio" >audio element not supported</audio>
<script src="dir/dir/somthing.js"></script>
</div>
我不是真正的专业人士或任何东西,但也许这有帮助,如果不是你,那么也许是其他人
关于javascript - 传递给 createMediaElementSource 的 HTMLMediaElement 有跨域资源,节点会输出静音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59016637/