我目前可以使用html 5对象流式传输音频,下面是一小段代码。
let snd = new Audio("data:audio/wav;base64," + this.hexToBase64(this.waveHeader + this.byteStream));
snd.play();
很遗憾,我遇到了这个错误,我在STREAM- DOMException: play() can only be initiated by a user gesture
发了一个帖子`this.byteStream` is a buffered 0.1 (s) of audio data in hex
到目前为止,每次我想播放0.1(s)的音频流时,我都会重建一个新文件,所以我想这是怎么回事?最好的方法是以某种方式创建一个音频对象once
给它一个波形标题+初始数据并以某种方式告诉音频对象,因为每个新数据连续播放它。所以我打了一次.play(),每次我附加数据就会播放它。这会将缓冲区责任放在API上。
那会很好,这可能吗?这也可以解决我的问题,因为.play()方法只被调用一次
更新:我决定添加一个事件,这样当你点击代码运行的任何地方时。
<div id="container" [style.background]="getContainerStyle()" (click) = "start()">
start(),在封装在事件内部之前像普通程序一样运行我的程序。仍然没有奏效。