HTML5之录制媒体信息(MediaRecoder)

要用到的属性事件和方法

audioContext:音频上下文

audio:封装的比较表层

底层的控制权限获取不到

只能播放完整的音频文件

属性

audioContext用于比较复杂的播放器,也可以播放媒体流

currentTime:只能用于播放完整的音频文件使用

destination:输出口(目标节点) -》AudioNode

state:当前播放的状态

事件

onstatechange:当状态发生改变的时候触发

方法

createBufferSource():创建bufferSource->AudioBufferSourceNode

MediaStreamAudioSourceNode

suspend():继续

resume():暂停



AudioPlayer.js文件

(function() {

functionAudioPlayer() {

// this.loadAudioSourceNode();

}

// navigator.mediaDevices.getUserMedia({audio:true}).then(function (stream) {

//    var audioContext = new AudioContext()

// });

AudioPlayer.prototype.loadAudioSourceNode=function(url) {

varaduioContext =newAudioContext();

//资源节点 通过资源节点进行播放

varsourceNode = aduioContext.createBufferSource();

this.loadAudioFile(url).then(function(arraybuffer) {

//转化成arrayBuffer类型的数据

aduioContext.decodeAudioData(arraybuffer,function(audioBuffer) {

//设置输入元的数据

sourceNode.buffer= audioBuffer;

//设置输出源的端口

sourceNode.connect(aduioContext.destination);

sourceNode.start();

});

});

};

AudioPlayer.prototype.loadAudioFile=function(url) {

return newPromise(function(res) {

varrequest =newXMLHttpRequest();

//audioContext在创建资源库的时候 需要一个AudioBuffer类型的数据

//AudioBuffer 可以通过decodeAudioData获得

//decodeAudioData 需要ArrayBuffer类型的数据

//在加载音频数据的时候 就需要指定 返回的格式是bufferArray类型

request.responseType="arraybuffer";//设置成bufferArray类型,想获得音频文件

request.open("GET",url);

request.onload=function() {

res(request.response);

};

request.send();

})

};

window.AudioPlayer=AudioPlayer;

})();


app.js文件

(function() {

varplayer =newAudioPlayer();

player.loadAudioSourceNode("味道.mp3");

})();

你可能感兴趣的:(HTML5之录制媒体信息(MediaRecoder))