Что не так с моим кодом для записи звука в HTML5?

Я пытаюсь записать звук через микрофон с помощью последней бета-версии Chrome (версия 21.0.1180.15). Кажется, что почти все, что нужно сделать, теперь реализовано в бета-версии Chrome. Я даже получаю доступ к микрофону. Хотя я не могу подключить поток с элементом audio. Но, насколько я понимаю, это должно работать, если нет ошибки.

createMediaStreamSource() еще не реализован. В качестве обходного пути я хочу использовать createMediaElementSource() для маршрутизации звука с микрофона через приглушенный элемент audio.

Используя приведенный ниже код, я получаю одно из этих двух сообщений об ошибке в консоли:

GET blob:file%3A///625fd498-f427-43d5-959b-3b49c6d53ab5 404 (не найдено)

or

Не разрешено загружать локальный ресурс: blob:null/8df582cc-b663-489b-bf49-1785226fc7b7

Ошибка вызвана этой строкой:

audio.src = window.webkitURL.createObjectURL(stream)

Что-то не так с этой строкой? Как подключить поток к источнику элемента audio? Или это ошибка в Chrome, из-за которой невозможно создать URL-адрес объекта?

Код:

var context = null;
var elementSource = null;

function onError(e) {
  if (e.code == 1) {
    alert('User denied access to their camera');
  } else {
    alert('getUserMedia() not supported by your browser');
  }
}

window.addEventListener('load', initAudio, false);
function initAudio() {
  navigator.webkitGetUserMedia({audio:true}, function (stream) {
    var audio = document.querySelector('#basic-stream');
    audio.src = window.webkitURL.createObjectURL(stream);
    audio.controls = true;
    context = new webkitAudioContext();
    elementSource = context.createMediaElementSource(audio);
    elementSource.connect(context.destination);
  }, onError);
}
<div>
    audio id="basic-stream" class="audiostream" autoplay muted></audio>
</div>


person Jan Deinhard    schedule 10.07.2012    source источник
comment
Это определенно поможет вам smartjava.org /контент/   -  person kongaraju    schedule 16.11.2012


Ответы (2)


Я не уверен, связано ли это, но есть нерешенная проблема, связанная с getUserMedia() со звуком.

http://code.google.com/p/chromium/issues/detail?id=112367

person Craig    schedule 11.07.2012

Если в этом нет абсолютной необходимости, не изобретайте заново квадратное колесо: https://github.com/mattdiamond/Recorderjs

person janesconference    schedule 31.01.2013