Chrome/CanaryのオーディオMediaStreamTrack
javascriptオブジェクトのマイクアクティビティレベルを取得するにはどうすればよいかアドバイスします。 MediaStreamTrack
オブジェクトは、getUserMedia
によって返されたMediaStream
のオーディオトラックで、WebRTC javascript APIの一部です。WebRTC MediaStreamのマイクアクティビティレベル
答えて
あなたが探しているものはwebkitAudioContext
とそのcreateMediaStreamSource
メソッドです。
ここでVUメーターのように行動する緑色のバーを描画するコードサンプルです:
navigator.webkitGetUserMedia({audio:true, video:true}, function(stream){
audioContext = new webkitAudioContext();
analyser = audioContext.createAnalyser();
microphone = audioContext.createMediaStreamSource(stream);
javascriptNode = audioContext.createJavaScriptNode(2048, 1, 1);
analyser.smoothingTimeConstant = 0.3;
analyser.fftSize = 1024;
microphone.connect(analyser);
analyser.connect(javascriptNode);
javascriptNode.connect(audioContext.destination);
canvasContext = $("#canvas")[0].getContext("2d");
javascriptNode.onaudioprocess = function() {
var array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
var values = 0;
var length = array.length;
for (var i = 0; i < length; i++) {
values += array[i];
}
var average = values/length;
canvasContext.clearRect(0, 0, 60, 130);
canvasContext.fillStyle = '#00ff00';
canvasContext.fillRect(0,130-average,25,130);
}
}
マイクは非常にいい上下オーディオ緑のバーを持っている場合:
<script type="text/javascript">
navigator.webkitGetUserMedia({audio:true, video:true}, function(stream){
// audioContext = new webkitAudioContext(); deprecated OLD!!
audioContext = new AudioContext(); // NEW!!
analyser = audioContext.createAnalyser();
microphone = audioContext.createMediaStreamSource(stream);
javascriptNode = audioContext.createJavaScriptNode(2048, 1, 1);
analyser.smoothingTimeConstant = 0.3;
analyser.fftSize = 1024;
microphone.connect(analyser);
analyser.connect(javascriptNode);
javascriptNode.connect(audioContext.destination);
//canvasContext = $("#canvas")[0].getContext("2d");
canvasContext = document.getElementById("test");
canvasContext= canvasContext.getContext("2d");
javascriptNode.onaudioprocess = function() {
var array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
var values = 0;
var length = array.length;
for (var i = 0; i < length; i++) {
values += array[i];
}
var average = values/length;
canvasContext.clearRect(0, 0, 60, 130);
canvasContext.fillStyle = '#00ff00';
canvasContext.fillRect(0,130-average,25,130);
}
}
);
</script>
<canvas id="test" style="background-color: black;"></canvas>
audioContext.createJavaScriptNodeはaudioContext.createScriptProcessorに名前が変更され https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createScriptProcessor –
、今、あなたはようwebkitGetUserMedia' 'のための誤差関数を定義する必要があります3番目の引数。 – CodeBrauer
私は最初の答えからコードにいくつかの修正を行いました。私も追加しました:
window.AudioContext = window.AudioContext || window.webkitAudioContext;
navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
をだから今、それはここではクロームとFirefox 39で34
の作品フィドルです:http://jsfiddle.net/elshnkhll/p07e5vcq/
- 1. リモートWebRTC MediaStreamの記録方法は?
- 2. WebRTC - MediaStream(トラック)のソースID(デバイスID)を特定する方法
- 3. リモートWebRTCピア接続でMediaStreamイベントがアクティブおよび非アクティブにされない
- 4. WebRTC NodeJSのビデオストリーミング
- 5. MediaStream on Windows Phone 7
- 6. WebRTC黒画面
- 7. WebRTC PeerConnectionへのリモートストリームの追加
- 8. ノックアウトでMediaStreamを表示
- 9. MediaStream未処理プロミス拒否:[オブジェクトDOMError](Safari 11)
- 10. WebRTC mediaserverのソリューション
- 11. DataChannel Webrtc Swift
- 12. 1対多のwebrtc
- 13. のFireFoxのWebRTCのcreateofferは
- 14. ChromeとFirefox間のWebRTC再調整
- 15. Symfony2とWebRTC、ルーティングの問題
- 16. firefoxでwebrtcのリモートビデオが動作しない
- 17. webRtcのデータチャネルjavascript
- 18. QuickBloxのWebRTCビデオチャットアンドロイド
- 19. PubNubのWebRTCビデオストリーミング
- 20. WebRTCアプリケーションのテスト
- 21. のWebRTCローカルビデオ
- 22. ウィンドウプラットフォームのWebRTCゲートウェイサーバー
- 23. ラズベリーパイゼロのWebRTC?
- 24. WebRTCのコード例
- 25. WebRTCのシグナリングサービス
- 26. Webrtcストリームのローカルビデオファイル
- 27. WebRTCのマルチポイントピア
- 28. DataChannel.state()は常にwebRTCを返します。
- 29. WebRTCマウスポインタ
- 30. WebRTCローカルシグナリングサーバ
あなたが一番最後に閉じ括弧を忘れてしまいました。 – igorpavlov