diff --git a/app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt b/app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt
index f99cb31..3465bc9 100644
--- a/app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt
+++ b/app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt
@@ -58,6 +58,7 @@ class OpusEngine(
private var dbgOut = 0
private var playStarted = false
private var gateStart = 0L
+ private var lastRealPacketTime = 0L
// Настраивается из скрытых настроек звука (AudioSettingsActivity)
@Volatile
var rxBufferMs = 417 // буфер AudioTrack, мс (40000 байт ≈ 417 мс при 48 кГц)
@@ -208,7 +209,10 @@ class OpusEngine(
}
}
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) {
Log.d(TAG, "out ${pcm.size}B")
dbgOut++
@@ -278,6 +282,7 @@ class OpusEngine(
/** Подача одного Opus-пакета на декодер (с UDP-потока). */
fun onAudioPacket(packet: ByteArray) {
+ lastRealPacketTime = System.currentTimeMillis()
rxQueue.add(packet)
receivedAny = true
if (gateStart == 0L) gateStart = System.currentTimeMillis()
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 033b58a..9d0e346 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -52,7 +52,7 @@
RX
MIC
---
- -%1$d dB
+ +%1$d dB
TG%1$d ▾
Последний: —
Подключение…