AudioContext从blob获取数据的视频创建MediaElementSource
AudioContext createMediaElementSource from video fetching data from blob
在javascript中,如何将音频上下文连接到从blob获取数据的视频(视频使用MediaStream功能)。无论我做什么,音频上下文都会返回一个空缓冲区。有什么办法把两者联系起来吗?
对于这个用例,createMediaElementSource
可能不是处理node
的合适类型。相反,您最好使用WebAudio API的createMediaStreamSource节点,以防您试图处理音频直播流,而不是固定媒体源。
AudioContext
接口的createMediaStreamSource()
方法用于创建新的MediaStreamAudioSourceNode
对象,给定媒体流(例如,来自navigator.getUserMedia
实例),然后可以播放和操纵来自该媒体流的音频。
链接有一个更详细的示例。但是,此MediaStreamAudioSourceNode
的主要区别在于,它只能使用从媒体服务器或本地(通过getUserMedia
)获得的MediaStream创建。根据我的经验,我找不到任何方法只使用<video>
标签中的blob
url。
虽然这是一个老问题,但我已经搜索了类似的内容,并找到了一个我想分享的解决方案。
若要连接Blob,可以使用新的响应实例。下面是一个创建波形可视化工具的示例。
var audioContext = new (window.AudioContext || window.webkitAudioContext)();
var analyser = audioContext.createAnalyser();
var dataArray = new Uint8Array(analyser.frequencyBinCount);
var arrayBuffer = await new Response(yourBlob).arrayBuffer();
var audioBuffer = await audioContext.decodeAudioData(arrayBuffer);
var source = audioContext.createBufferSource();
source.buffer = audioBuffer;
source.connect(analyser);
source.start(0);
注意:yourBlob
需要是Blob实例。
你可能会发现这把小提琴很有用,它可以录制5秒的视频和音频,将录音变成Blob,然后播放,包括音频波形可视化。
相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- 在javascript中添加和显示对象的随机数组中的视频
- 如何解析Brightcove视频中的视频缩略图
- 如何创建包含多个视频的视频横幅
- 从不同的对象创建阵列
- 如何使用angularjs在iframe中嵌入来自数据库的视频链接
- 使我的视频标头响应
- AudioContext从blob获取数据的视频创建MediaElementSource
- 如何从使用 jquery 动态创建的视频标签中获取视频时长
- 如何使用jqueryjplayer的视频url创建缩略图
- 创建视频播放器(Quicktime浏览器插件)React元素,输出缺少的视频属性
- 创建可点击的视频缩略图,在上面的同一页面上加载视频
- 想要为全屏视频背景上的音频创建自定义静音/取消静音按钮
- YouTube是如何创建一个流畅的视频播放器的
- 为视频创建非常大的精灵表
- 创建自己的视频播放器
- 如何创建一个进度条.观看的视频
- 在javascript中为video元素创建了重复的视频对象.控制html5视频
- 如何为使用Html5创建的视频创建灯箱效果
- 是否可以创建一个Flash视频播放器,播放在youtube上托管的视频