最新のChromeベータ版(バージョン21.0.1180.15)のマイクを介してオーディオを録音しようとしています。現在、それを行うためのほとんどすべてがChromeベータ版に実装されているようです。マイクにもアクセスできます。audio
ストリームを要素に接続することはできませんが。しかし、私の理解では、バグがなければ機能するはずです。
createMediaStreamSource()
まだ実装されていません。createMediaElementSource()
回避策として、マイクからのオーディオをミュートされたaudio
要素を介してルーティングするために使用したいと思います。
以下のコードを使用すると、コンソールに次の2つのエラーメッセージのいずれかが表示されます。
GET blob:file%3A /// 625fd498-f427-43d5-959b-3b49c6d53ab5 404(見つかりません)
また
ローカルリソースの読み込みは許可されていません:blob:null / 8df582cc-b663-489b-bf49-1785226fc7b7
エラーの原因は次のとおりです。
audio.src = window.webkitURL.createObjectURL(stream)
この行に何か問題がありますか?ストリームをaudio
要素ソースに接続するにはどうすればよいですか?それとも、オブジェクトURLを作成できなくなるのはChromeのバグですか?
コード:
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>