var processor = audioContext.createScriptProcessor(512);
processor.onaudioprocess = volumeAudioProcess;
<略>
function volumeAudioProcess( event ) {
var buf = event.inputBuffer.getChannelData(0);
for (var i=0; i<bufLength; i++) {
x = buf[i];
if (Math.abs(x)>=this.clipLevel) {
this.clipping = true;
this.lastClip = window.performance.now();
}
sum += x * x;
}
<略>※出展:https://github.com/cwilso/volume-meter
audioOutputLevel、audioInputLevelというプロパティを参照することで、出力レベルと入力レベルが取れます。
良いサンプルコードがありませんが、opentok.jsにOutputLevelを取得するfunctionが実装されてました。
https://static.opentok.com/v2/js/opentok.js
20719行目付近
参考になれば幸いです。
>> このグループから退会し、グループからのメールの配信を停止するには skywayjs+unsubscribe@googlegroups.com
>> にメールを送信してください。
>> このディスカッションをウェブ上で閲覧するには
>> https://groups.google.com/d/msgid/skywayjs/0b340bc0-25a8-4773-9794-ba2edb9dbb70%40googlegroups.com
>> にアクセスしてください。
>> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>
> --
> このメールは Google グループのグループ「SkyWay Technical Forum」の登録者に送られています。
> このグループから退会し、グループからのメールの配信を停止するには skywayjs+unsubscribe@googlegroups.com にメールを送信してください。
call.peerConnection.getStats(function(report) { var rtcStatsReports = report.result(); for (var i=0; i<rtcStatsReports.length; i++) { var statNames = rtcStatsReports[i].names();
for (var j=0; j<statNames.length; j++) { var statName = statNames[j]; var statValue = rtcStatsReports[i].stat(statName);
if(statName == "audioOutputLevel"){ console.log("音声の出力レベル:"+statValue); } if(statName == "audioInputLevel"){ console.log("音声の入力レベル:"+statValue); } } } });>> このグループから退会し、グループからのメールの配信を停止するには skywayjs+u...@googlegroups.com
>> にメールを送信してください。
>> このディスカッションをウェブ上で閲覧するには
>> https://groups.google.com/d/msgid/skywayjs/0b340bc0-25a8-4773-9794-ba2edb9dbb70%40googlegroups.com
>> にアクセスしてください。
>> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>
> --
> このメールは Google グループのグループ「SkyWay Technical Forum」の登録者に送られています。
> このグループから退会し、グループからのメールの配信を停止するには skywayjs+u...@googlegroups.com にメールを送信してください。