Show RX/MIC meters as +dB; zero RX meter during conceal
This commit is contained in:
@@ -58,6 +58,7 @@ class OpusEngine(
|
|||||||
private var dbgOut = 0
|
private var dbgOut = 0
|
||||||
private var playStarted = false
|
private var playStarted = false
|
||||||
private var gateStart = 0L
|
private var gateStart = 0L
|
||||||
|
private var lastRealPacketTime = 0L
|
||||||
// Настраивается из скрытых настроек звука (AudioSettingsActivity)
|
// Настраивается из скрытых настроек звука (AudioSettingsActivity)
|
||||||
@Volatile
|
@Volatile
|
||||||
var rxBufferMs = 417 // буфер AudioTrack, мс (40000 байт ≈ 417 мс при 48 кГц)
|
var rxBufferMs = 417 // буфер AudioTrack, мс (40000 байт ≈ 417 мс при 48 кГц)
|
||||||
@@ -208,7 +209,10 @@ class OpusEngine(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
player?.write(pcm, 0, pcm.size)
|
player?.write(pcm, 0, pcm.size)
|
||||||
onLevel(SRC_SPEAKER, pcmLevel(pcm))
|
// Уровень показываем только для реальных пакетов: во время
|
||||||
|
// скрытия потерь (conceal) шкала должна быть в нуле
|
||||||
|
val real = System.currentTimeMillis() - lastRealPacketTime < 400
|
||||||
|
onLevel(SRC_SPEAKER, if (real) pcmLevel(pcm) else 0f)
|
||||||
if (dbgOut < 5) {
|
if (dbgOut < 5) {
|
||||||
Log.d(TAG, "out ${pcm.size}B")
|
Log.d(TAG, "out ${pcm.size}B")
|
||||||
dbgOut++
|
dbgOut++
|
||||||
@@ -278,6 +282,7 @@ class OpusEngine(
|
|||||||
|
|
||||||
/** Подача одного Opus-пакета на декодер (с UDP-потока). */
|
/** Подача одного Opus-пакета на декодер (с UDP-потока). */
|
||||||
fun onAudioPacket(packet: ByteArray) {
|
fun onAudioPacket(packet: ByteArray) {
|
||||||
|
lastRealPacketTime = System.currentTimeMillis()
|
||||||
rxQueue.add(packet)
|
rxQueue.add(packet)
|
||||||
receivedAny = true
|
receivedAny = true
|
||||||
if (gateStart == 0L) gateStart = System.currentTimeMillis()
|
if (gateStart == 0L) gateStart = System.currentTimeMillis()
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
<string name="meter_rx">RX</string>
|
<string name="meter_rx">RX</string>
|
||||||
<string name="meter_mic">MIC</string>
|
<string name="meter_mic">MIC</string>
|
||||||
<string name="meter_idle">---</string>
|
<string name="meter_idle">---</string>
|
||||||
<string name="meter_db">-%1$d dB</string>
|
<string name="meter_db">+%1$d dB</string>
|
||||||
<string name="tg_badge">TG%1$d ▾</string>
|
<string name="tg_badge">TG%1$d ▾</string>
|
||||||
<string name="talker_last_none">Последний: —</string>
|
<string name="talker_last_none">Последний: —</string>
|
||||||
<string name="status_connecting">Подключение…</string>
|
<string name="status_connecting">Подключение…</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user