Android の Chrome で getUserMedia を使用してメディア ストリームを使用しようとしています。テストするために、入力ストリームを出力に単純に接続する以下のスクリプトを作成しました。このコードは Windows の Chrome では期待どおりに動作しますが、Android では何も聞こえません。ユーザーはマイクへのアクセスを許可するように求められますが、スピーカー、ハンドセット スピーカー、またはヘッドフォン ジャックから音声が出力されません。
navigator.webkitGetUserMedia({
video: false,
audio: true
}, function (stream) {
var audioContext = new webkitAudioContext();
var input = audioContext.createMediaStreamSource(stream);
input.connect(audioContext.destination);
});
さらに、Chrome がシステムにオーディオを再生しているかのように、音量を上げ下げするときのフィードバック ビープ音は鳴りません。
この機能が Chrome for Android でまだサポートされていないというのは本当ですか? 次の質問は似たようなものですが、どちらにも決定的な答えや説明はありません。
getUserMedia を使用するのは初めてなので、互換性を損なう可能性のあるコードを実行していないことを確認したかったのです。
また、この問題は getUserMedia 自体には当てはまらないようです。<audio>
次のコード (jQuery を使用) で示されているように、タグで getUserMedia を使用することができます。
navigator.webkitGetUserMedia({
video: false,
audio: true
}, function (stream) {
$('body').append(
$('<audio>').attr('autoplay', 'true').attr('src', webkitURL.createObjectURL(stream))
);
});