Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建youtube流HTML5的音频频谱_Javascript_Html_Audio_Youtube_Spectrum - Fatal编程技术网

Javascript 创建youtube流HTML5的音频频谱

Javascript 创建youtube流HTML5的音频频谱,javascript,html,audio,youtube,spectrum,Javascript,Html,Audio,Youtube,Spectrum,在HTML5中创建MediaElementSource(绘制youtube视频的可视化)。可能吗 你能给我举个例子吗?我只想添加一个传统的youtube播放器,在它的频谱/可视化下,我在互联网上找到了一个mp3版本 这是它的音频/mp3版本,我只是不知道这是否可以与youtube视频流一起使用 <style type="text/css"> div#mp3_player{ width:500px; height:60px; background:#000; padding:5px;

在HTML5中创建MediaElementSource(绘制youtube视频的可视化)。可能吗

你能给我举个例子吗?我只想添加一个传统的youtube播放器,在它的频谱/可视化下,我在互联网上找到了一个mp3版本

这是它的音频/mp3版本,我只是不知道这是否可以与youtube视频流一起使用

<style type="text/css">
div#mp3_player{ width:500px; height:60px; background:#000; padding:5px; margin:50px auto; }
div#mp3_player > div > audio{  width:500px; background:#000; float:left;  }
div#mp3_player > canvas{ width:500px; height:30px; background:#002D3C; float:left; }
</style>
<script>
// Create a new instance of an audio object and adjust some of its properties
var audio = new Audio();
audio.src = '613814.mp3';
audio.controls = true;
audio.loop = true;
audio.autoplay = false;
// Establish all variables that your Analyser will use
var canvas, ctx, source, context, analyser, fbc_array, bars, bar_x, bar_width, bar_height;
// Initialize the MP3 player after the page loads all of its HTML into the window
window.addEventListener("load", initMp3Player, false);
function initMp3Player(){
    document.getElementById('audio_box').appendChild(audio);
    context = new webkitAudioContext(); // AudioContext object instance
    analyser = context.createAnalyser(); // AnalyserNode method
    canvas = document.getElementById('analyser_render');
    ctx = canvas.getContext('2d');
    // Re-route audio playback into the processing graph of the AudioContext
    source = context.createMediaElementSource(audio); 
    source.connect(analyser);
    analyser.connect(context.destination);
    frameLooper();
}
// frameLooper() animates any style of graphics you wish to the audio frequency
// Looping at the default frame rate that the browser provides(approx. 60 FPS)
function frameLooper(){
    window.webkitRequestAnimationFrame(frameLooper);
    fbc_array = new Uint8Array(analyser.frequencyBinCount);
    analyser.getByteFrequencyData(fbc_array);
    ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear the canvas
    ctx.fillStyle = '#00CCFF'; // Color of the bars
    bars = 100;
    for (var i = 0; i < bars; i++) {
        bar_x = i * 3;
        bar_width = 2;
        bar_height = -(fbc_array[i] / 2);
        //fillRect( x, y, width, height ) // Explanation of the parameters below
        ctx.fillRect(bar_x, canvas.height, bar_width, bar_height);
    }
}
</script>
</head>
<body>
<div id="mp3_player">
  <div id="audio_box"></div>
  <canvas id="analyser_render"></canvas>
</div>

div#mp3_播放器{宽度:500px;高度:60px;背景:000;填充:5px;边距:50px自动;}
div#mp3_player>div>audio{宽度:500px;背景:#000;float:left;}
div#mp3_播放器>画布{宽度:500px;高度:30px;背景:#002D3C;浮动:左;}
//创建音频对象的新实例并调整其某些属性
var audio=新音频();
audio.src='613814.mp3';
audio.controls=true;
audio.loop=true;
audio.autoplay=false;
//确定分析仪将使用的所有变量
var画布、ctx、源、上下文、分析器、fbc_数组、条形、条形、条形、条形宽度、条形高度;
//在页面将其所有HTML加载到窗口后初始化MP3播放器
addEventListener(“加载”,initmp3plyer,false);
函数initMp3Player(){
document.getElementById('audio_-box').appendChild(audio);
context=新的webkitAudioContext();//AudioContext对象实例
Analyzer=context.createAnalyzer();//AnalyzerNode方法
canvas=document.getElementById('analyzer_render');
ctx=canvas.getContext('2d');
//将音频播放重新路由到AudioContext的处理图中
source=context.createMediaElementSource(音频);
源。连接(分析仪);
分析器.连接(上下文.目的地);
frameLooper();
}
//frameLooper()为您希望播放音频的任何图形样式设置动画
//以浏览器提供的默认帧速率循环(约60 FPS)
函数frameLooper(){
webkitRequestAnimationFrame(frameLooper);
fbc_阵列=新UINT8阵列(分析仪频率b计数);
分析仪。GetByTefFrequencyData(fbc_阵列);
ctx.clearRect(0,0,canvas.width,canvas.height);//清除画布
ctx.fillStyle='#00CCFF';//条的颜色
钢筋=100;
对于(变量i=0;i
我认为这是不可能的,因为您无法从页面访问Youtube Iframe/页面的HTML5视频元素。
不幸的是,Youtube不允许CORS,这就阻止了这一点:

也许下载音频并使用它是解决方案?它将解决乔里克托斯指出的问题。但需要后端。

请稍微扩展您的答案。提到