zoukankan      html  css  js  c++  java
  • 前端音频流播放

    方式一:

    利用js的Api AudioContext来播放:

    var AudioContext = window.AudioContext ||
    window.webkitAudioContext ||
    window.mozAudioContext ||
    window.oAudioContext ||
    window.msAudioContext;

    function playAuido(blob){

       

    var fr = new FileReader();
    fr.onload = function () {
          var arrBuff = this.result; // ab是转换后的结果
          audioContext.decodeAudioData(arrBuff, function (buffer) {
              var source = audioContext.createBufferSource();
              source.buffer = buffer; // This is the line that generates the error
              source.connect(audioContext.destination);
              source.start(0);
           }

    }
      fr.readAsArrayBuffer(blob);

    }

    方式二:

    利用auido标签播放:此种方式兼容IE9以上。原理是直接将aduio的src地址指向保存二进制流的内存地址。

    function playVideo: function (blob) {

    try{
    var reader = new FileReader();
    reader.onload = function (evt) {
    if (evt.target.readyState == FileReader.DONE) {
    var data = new Uint8Array(evt.target.result);
    indexParam.audio.src = window.URL.createObjectURL(indexMethod.getBlob2(data, data.length));
    }
    }
    reader.readAsArrayBuffer(blob);
    } catch (ex) {
    console.log(ex);
    }
    },

    function getBlob2: function (data, len) {
    var buffer = new ArrayBuffer(len);
    var dataview = new DataView(buffer);
    dataview = new Uint8Array(data, 0, len);
    return new Blob([dataview], { type: 'audio/mp3' });
    },

    以上两方式接收的必须是流数据才能播放。

  • 相关阅读:
    二维码在短信业务应用的初步构思
    Twproject Gantt开源甘特图功能扩展
    vscode 1.5安装体验
    OpenLiveWriter代码插件
    golang语言构造函数
    WebAPI接口返回ArrayList包含Dictionary对象正确解析
    golang枚举类型
    Gatekeeper Pattern 把关(守门人)模式
    .NET Core Windows环境安装与体验
    Federated Identity Pattern 联合身份模式
  • 原文地址:https://www.cnblogs.com/xhrGeek/p/6201975.html
Copyright © 2011-2022 走看看