Как конвертировать MediaRecord в base64

281
02 декабря 2017, 08:11

	var startRecord = function(cb){ 
		var int; 
		  navigator.mediaDevices.getUserMedia({ audio: true , video:false}).then(function(stream){ 
       var options = { 
        audioBitsPerSecond : 128000, 
        videoBitsPerSecond : 2500000, 
        mimeType : 'audio/webm' 
      } 
 
      if(!MediaRecorder.isTypeSupported(options['mimeType'])) options['mimeType'] =  "audio/webm"; 
 
 
window.voice = new MediaRecorder(stream, options); 
voice.start(); 
voice.ondataavailable = function(data){ 
   var reader = new FileReader(); 
  var blob = data.data; 
console.log(URL.createObjectURL(blob)); 
   reader.readAsDataURL(blob); 
    reader.onloadend = function () { 
    var result = reader.result; 
 
 
 
 
  cb(result); 
 
  } 
 
 
}; 
 
voice.onstop = function(){ 
console.log('stop audio call'); 
clearInterval(int); 
} 
 
 
int = setInterval(function() { 
	if(voice.state!='inactive')  voice.requestData(); 
 
 
 
}, 500); 
 
 
}); 
 
	} 
 
  function convertDataURIToBinary(dataURI) { 
  var BASE64_MARKER = ';base64,'; 
  var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length; 
  var base64 = dataURI.substring(base64Index); 
  var raw = window.atob(base64); 
  var rawLength = raw.length; 
  var array = new Uint8Array(new ArrayBuffer(rawLength)); 
 
  for(i = 0; i < rawLength; i++) { 
    array[i] = raw.charCodeAt(i); 
  } 
  return array; 
}

Данный код возвращает в каллбэке base64 аудио, но когда я из этого base64 делаю blob, аудио не воспроизводится.

 var binary= convertDataURIToBinary(data); 
  var blob=new Blob([binary], {type : 'audio/webm'}); 
  var blobUrl = URL.createObjectURL(blob); 
  console.log('URL : ' + blobUrl);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

READ ALSO
url картинки в img

url картинки в img

В avatarfull лежит url картинки

250
Вывод других HTML страниц с кнопок в нужном месте во фрейме

Вывод других HTML страниц с кнопок в нужном месте во фрейме

Согласен, вопрос избитый и, в какой-то степени, глупый, но тем не менее, не могу с ним справиться

283
Выравнить два блока по нижнему краю

Выравнить два блока по нижнему краю

Всем привет! Я backend-щик, а поставили задачу по версткеИмеется два блока A и Б, у которых может быть разная высота

262