如何从视频元素中获取频率数据,并实时输入音频API
How to get frequency data from video element and feed into audio API on the fly
我正在尝试使用以下方法创建视频可视化(查看可能性的最小代码):
HTML:
<canvas id=canvas width=427 height=240></canvas>
JS:
var context = new webkitAudioContext()
, analyser = context.createAnalyser()
, video = document.createElement('video')
, source = context.createMediaElementSource(video)
, canvas = document.getElementById('canvas')
, ctx = canvas.getContext('2d')
;
var loadVideos = function() {
video.src = 'my video.ogg';
source.connect(analyser);
analyser.connect(context.destination);
video.play();
videoVisualization();
}
loadVideos();
function videoVisualization() {
window.webkitRequestAnimationFrame(videoVisualization);
ctx.drawImage(this.video, 0, 0, canvas.width, canvas.height);
var freqByteData = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(freqByteData);
for (i = 0; i < freqByteData.length; ++i) {
console.log(freqByteData[5]);
}
}
如果我在中添加这个,这可以很容易地完成
<video id=video controls width=427 height=240>
<source src="my video.ogg" type="audio/ogg" />
</video>
尤其是当我用scriptProcessor节点获取音频数据时,但我想随时更改视频源,而视频标签不支持它。
提前感谢,
Chromecast不完全支持Web音频。频率数据是不受支持的数据之一。查看此处的错误
相关文章:
- 将数据插入输入值-AngularJS
- 如何更改 HTML 数据列表输入上显示的图标?隐藏是可能的,但我可以将其更改为其他一些图标,例如向下箭头
- Javascript 隐藏/显示数据作为输入无线电
- 引导程序 3 调整表数据和输入字段的大小
- 无法用数据实时搜索填充引导程序选择+使用jquery填充多个
- jquery:将数据从输入切换到文本,然后再切换回来
- 将数据从输入字段传递到角度工厂中的 $http.get
- 返回数据表输入字段
- 用数据计算输入和文本区域的数量
- 使用 jQuery 过滤和删除没有数据的输入
- 如何将数据从输入字段写入进度标记
- 大量数据实时可视化
- JavaScript数学运算和实时输入文本字段
- 使用存储的数据填充输入
- 如何将用户尝试填充数据的输入旁边的所有输入设置为只读
- jquery附加了不向服务器传递数据的输入
- 用JSON数据填充输入字段
- 如何从视频元素中获取频率数据,并实时输入音频API
- 防止添加不包含数据的输入框(没有用户按键)
- 使用实时输入的getFloatFrequencyData在web音频中没有获得频率数据