Google Chrome会将ogg文件作为webm发送

时间:2017-09-12 22:21:25

标签: google-chrome websocket webm

我使用mediaStreamRecorder记录ogg文件并通过Websocket将其发送到我的API并且它与WebM不兼容,它在其他浏览器中工作正常,但在chrome中,我的api说文件是webM,并且抛出错误。

这是我的recorder.js文件的一部分:

mediaRecorder.onstop = function(e) {
  if (audioarray.length>=2){
    var blob = new Blob(audioarray, { 'type' : 'audio/ogg; codecs=opus' });
    var blobURL = URL.createObjectURL(blob);
    blobsize  = blob.size;
    reader.readAsDataURL(blob);
    reader.onload = function(event){
      codedaudio = reader.result;
      console.log("File size: "+blobsize);
      audiourl = event.target.result;
      //cut Base64 code to the last ","
      audiomsg = codedaudio.substring(codedaudio.lastIndexOf(",")+1,codedaudio.length);
      console.log("Audio length: "+audioarray.length);
      sendMessage(audiomsg,'right','audio',blobURL);
      console.log("MediaStreamrecorder stopped");
      audioarray = [];
    };
  }else{
    // ToDo in short audio case
    console.log("audio is too short, it will not be sent")
    console.log("Audio length: "+audioarray.length);
    audioarray = [];
  };
}

这里发送ogg的部分代码:

sendMessage = function (text,side,type,filepath) {
  webmessage = {
    message:text,
    type: type
  }
  message_side = side;
  //output debug
  if(text!=""){
    ws.send(JSON.stringify(webmessage));
    if (output==true){
      console.log(webmessage);
    }
  }
};

¿有没有办法将它作为ogg发送到chrome?。

1 个答案:

答案 0 :(得分:0)

与Firefox和可能的其他浏览器不同,Chrome doesn't support recording audio-only in an ogg container

您可以使用以下方式测试支持:

MediaRecorder.isTypeSupported("audio/ogg")