概要
配信プログラムは、jsfiddleに置いた。
webrtcが、jsdoで動かないため。
オーディオカードのマイク入力をwebsocketに投げる。
写真
サンプルコード
var ws = new WebSocket("ws://ohijs0.paas.jp-e1.cloudn-service.com/pub");
ws.binaryType = "arraybuffer";
ws.onopen = function(e) {
};
ws.onerror = function(e) {
alert("err");
alert(e.msg);
};
var ac = new AudioContext();
var sampleRate = ac.sampleRate;
var node = ac.createScriptProcessor(4096, 2, 2);
navigator.getMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
function onStream(stream) {
var source = ac.createMediaStreamSource(stream);
node.onaudioprocess = function(e) {
ws.send(new Float32Array(e.inputBuffer.getChannelData(0)));
}
source.connect(node);
node.connect(ac.destination);
}
function onStreamFailed(err) {
alert('エラー: ' + err);
}
if (navigator.getMedia)
{
var prop = {
video: false,
audio: true,
toString: function() {
return 'audio';
}
};
navigator.getMedia(prop, onStream, onStreamFailed);
}
else
{
alert('エラー: getUserMediaがサポートされていません');
}