如何为 opentok 中的每个流获取麦克风 activity
How to get mic activity for each stream in opentok
我有关于如何使用 OpenTok 为每个流获取麦克风 activity 的问题。
为此,我正在与 PHP 和 OpenTok.js 合作。
这是我当前的代码。
......
var subscribers;
session.on("streamCreated", function(event) {
var subscriber = session.subscribe(event.stream, 'elementId', {
insertMode: 'append',
width: 100%,
height: 100%
})
subscribers[subscriber.id] = subscriber;
for(var user in subscribers) {
console.log(subscribers[user].getAudioVolume());
}
});
..........
我这样试过,结果总是100。
谁能解决这个问题?
请帮我。
尤里
var movingAvg = null;
subscriber.on('audioLevelUpdated', function(event) {
if (movingAvg === null || movingAvg <= event.audioLevel) {
movingAvg = event.audioLevel;
} else {
movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
}
// 1.5 scaling to map the -30 - 0 dBm range to [0,1]
var logLevel = (Math.log(movingAvg) / Math.LN10) / 1.5 + 1;
logLevel = Math.min(Math.max(logLevel, 0), 1);
document.getElementById('subscriberMeter').value = logLevel;
});
我有关于如何使用 OpenTok 为每个流获取麦克风 activity 的问题。 为此,我正在与 PHP 和 OpenTok.js 合作。
这是我当前的代码。
......
var subscribers;
session.on("streamCreated", function(event) {
var subscriber = session.subscribe(event.stream, 'elementId', {
insertMode: 'append',
width: 100%,
height: 100%
})
subscribers[subscriber.id] = subscriber;
for(var user in subscribers) {
console.log(subscribers[user].getAudioVolume());
}
});
..........
我这样试过,结果总是100。
谁能解决这个问题? 请帮我。 尤里
var movingAvg = null;
subscriber.on('audioLevelUpdated', function(event) {
if (movingAvg === null || movingAvg <= event.audioLevel) {
movingAvg = event.audioLevel;
} else {
movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
}
// 1.5 scaling to map the -30 - 0 dBm range to [0,1]
var logLevel = (Math.log(movingAvg) / Math.LN10) / 1.5 + 1;
logLevel = Math.min(Math.max(logLevel, 0), 1);
document.getElementById('subscriberMeter').value = logLevel;
});