createMediaElementSource

createMediaElementSource

我正在测试更改视频的音频增益。我创建了一个示例 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/

10-12 12:49