Я пытаюсь записать с микрофона с помощью HTML5 в Chrome 29 Beta для Android (он включил поддержку веб-аудио в своей бета-версии 29). В приведенном ниже коде ProcessAudio - это функция веб-аудиофильтра, в которой я получаю входной буфер от микрофона. Я получаю правильный размер выборки. Однако, образцы аудио pcm в мобильном хроме всегда равны нулю. Хром отключает входные звуковые фильтры в своей мобильной версии? Кто-нибудь получил аудиозапись, использующую HTML5 в Chrome-версии для Chrome? Следующий код прекрасно работает в хром (настольная версия).Использование html5 для захвата входа микрофона на мобильный хром
<!DOCTYPE HTML>
<html>
<head>
<script>
function GetMedia(obj, fnSuccess, fnFailure)
{
if(navigator.getUserMedia)
{
return navigator.getUserMedia(obj, fnSuccess, fnFailure);
}
else if(navigator.webkitGetUserMedia)
{
return navigator.webkitGetUserMedia(obj, fnSuccess, fnFailure);
}
else if(navigator.mozGetUserMedia)
{
return navigator.mozGetUserMedia(obj, fnSuccess, fnFailure);
}
else if(navigator.msGetUserMedia)
{
return navigator.msGetUserMedia(obj, fnSuccess, fnFailure);
}
alert("no audio capture");
}
var incrementer = 0;
function ProcessAudio(e)
{
var inputBuffer = e.inputBuffer.getChannelData(0);
var outputBuffer = e.outputBuffer.getChannelData(0);
outputBuffer.set(inputBuffer, 0);
document.getElementById("display").innerText =
incrementer + " " + inputBuffer[0];
incrementer++;
}
var context = null;
function Success(localMediaStream)
{
context = new window.webkitAudioContext();
var microphone = context.createMediaStreamSource(localMediaStream);
var node = context.createScriptProcessor(4096, 1, 1);
node.onaudioprocess = ProcessAudio;
microphone.connect(node);
node.connect(context.destination);
}
function Error(err)
{
alert("no audio support");
}
function load(e)
{
GetMedia({audio:true,video:false}, Success, Error);
}
</script>
</head>
<body onload="load(event)">
<div>Audio Player</div>
<div id="display"></div>
<video id="localvideo" autoplay="autoplay" style="opacity:1"></video>
</body>
</html>
FYI прошло некоторое время, так как Chrome для мобильных устройств (как стабильный, так и бета) был обновлен, и хорошей новостью является то, что все работает отлично, как и ожидалось, вместе с живым входом. Хит код! PS: Может быть, мой отчет об ошибке сделал это C: – JSmyth