javascript - 传递给createMediaElementSource的HTMLMediaElement具有跨源资源,节点将输出静音

标签 javascript web-audio-api audiocontext

我正在测试更改视频的音频增益。我创建了一个示例 HTML 页面,视频文件与 HTML 文件位于同一目录中。没有网络服务器;我刚刚在本地磁盘上创建了该文件并使用 FireFox 打开它。代码如下,但是当我单击按钮时,我得到了

The HTMLMediaElement passed to createMediaElementSource has a cross-origin resource, the node will output silence.

并且音频被静音。我怎样才能解决这个问题?我在这里搜索发现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/

相关文章:

javascript - 我正在使用 ScrollMagic 和 Greensock,但它在滚动时卡住了

javascript - DOJO 查询伪元素

safari - try catch 音频但 navigator.mediaDevices.enumerateDevices() 在 Safari 12 上为 NULL,即使已授予麦克风权限

javascript - Promise.all 似乎并没有等待一切完成

javascript - 将所有元素包裹在两个父元素之间

javascript - FFT 与 offlineAudioContext

html - 网络音频在 Chrome 中播放,但在 Firefox 中不播放

web-audio-api - WebAudio API 采样率

javascript - 分析器条动画 HTML 音频 API 不起作用