Добавляем индикатор рассинхронизации звука и видео в статус-панели очков
This commit is contained in:
@@ -86,6 +86,14 @@ data class SetScale(val scale: Float) : HostToGlasses
|
||||
@SerialName("set_vertical")
|
||||
data class SetVertical(val vertical: Float) : HostToGlasses
|
||||
|
||||
/**
|
||||
* Индикатор аудио-синхронизации для статус-панели очков: diffMs — |звук − видео| в миллисекундах
|
||||
* (каждый sync-цикл ~5с), active — сейчас ли видео играет на очках (иначе индикатор скрывают).
|
||||
*/
|
||||
@Serializable
|
||||
@SerialName("audio_sync_info")
|
||||
data class AudioSyncInfo(val diffMs: Int, val active: Boolean) : HostToGlasses
|
||||
|
||||
/** Фраза распознана (streaming): phrase — фраза, full — весь накопленный текст сессии. */
|
||||
@Serializable
|
||||
@SerialName("stt_phrase")
|
||||
|
||||
@@ -265,4 +265,15 @@ class HostToGlassesTest {
|
||||
assertEquals("привет", decoded.messages[0].content)
|
||||
assertEquals("assistant", decoded.messages[1].role)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun audioSyncInfoRoundTrip() {
|
||||
val msg: HostToGlasses = AudioSyncInfo(diffMs = 340, active = true)
|
||||
val text = json.encodeToString(HostToGlasses.serializer(), msg)
|
||||
assertEquals("""{"type":"audio_sync_info","diffMs":340,"active":true}""", text)
|
||||
val decoded = json.decodeFromString(HostToGlasses.serializer(), text)
|
||||
assertIs<AudioSyncInfo>(decoded)
|
||||
assertEquals(340, decoded.diffMs)
|
||||
assertTrue(decoded.active)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user