2013-06-27 1 views
0

Я работаю над реализацией getUserMedia для аудио/видео, а затем сохраняю его через локальное хранилище через HTML5 api. У меня есть два вопроса.Вопросы getUserMedia - Остановить поток и локальное хранилище API

Первая проблема заключается в том, что когда звук соединяется с ней, эхо мой голос очень слабо и имеет постоянный статический звук (протестирован в firefox). Есть ли какие-либо известные проблемы с этим, я не смог найти ответ любого рода.

Кроме того, существует ли документация, останавливающая и помещающая файл mediaStream в что-то для сохранения через локальное хранилище или через ajax/php или что-то в этом роде? Я немного потерял, как остановить, а затем сохранить файл.

МОЙ код JavaScript и код HTML ниже ... СПАСИБО!

<section> 
     <!-- <audio controls autoplay></audio> --> 
     <video controls autoplay></video> 
     <input id="startRecording" type="button" value="Start Recording"/> 
     <input id="stopRecording" type="button" value="Stop Recording"/> 
</section> 




window.onload = function() { 

function hasGetUserMedia() { 
    //Note: opera is unprefixed 
    return !!(navigator.hasGetUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); 
} //Check for Get User Media in browsers 

function startRecording() { 

     navigator.getUserMedia({audio: true, video: true},function(stream) {audio.src = window.URL.createObjectURL(stream); },onFail); 
} 

function stopRecording() { 
    var audio = document.querySelector('video'); 
    audio.src = "";Q 
} 

var onFail = function(e) { 
    console.log("ERROR"); 
} 
var audio = document.querySelector('video'); 

if (hasGetUserMedia()) { 
    //AWESOME! Do whatever needs to be done 
    window.URL = (window.URL || window.webkitURL || window.webkitURL || window.mozURL || window.msURL); 
    navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); 

    var startRecord = document.getElementById('startRecording'); 
    var endRecord = document.getElementById('stopRecording'); 
    startRecord.onclick = startRecording; 
    endRecord.onclick = stopRecording; 

} else { 
    alert("FAIL"); 
    //Put in fallback for flash/silverlight? 
} //Check for getUserMedia() 

} //load this stuff onload 

ответ

0

В настоящее время возможно зафиксировать видео косвенно через холст, но API-интерфейс Recorder Mediastream еще не реализован. Так что звук все равно будет тяжелым.

Что касается эха, это очень хорошо. См.: https://hacks.mozilla.org/2013/06/webrtc-comes-to-firefox/

Так что, боюсь, вам придется подождать еще дольше.