anc
Экран записи и проигрыватель: волна, источники, отметки, звук ↔ текст
Запись:
- Время — по записанному звуку, паузы не в счёт (позиция сессии записи,
ms в событиях уровня, position_ms в recorder_status).
- Живая «волна» последней минуты, «Микрофон / Звук компьютера —
слышно / тишина», объём записи; «Остановить и расшифровать».
- «★ Отметить момент»: отметка с подписью (Meeting.markers,
add_marker / set_markers); видна в расшифровке и на проигрывателе.
Проигрыватель (player.ts):
- Полоса внизу экрана записи: играть, ±15 с, скорость до 2×, «волна»
всей встречи (клик и протяжка — перемотка, отметки, текущее место),
«★» — отметить место. Две дорожки записи играют вместе и
подравниваются. Живёт дольше перерисовок экрана — звук не прерывается.
- Звук читается с диска протоколом asset: только из папки записей
(protocol-asset, scope на папку, media-src в CSP); «волна» считается
один раз и кэшируется в peaks.json.
- Время реплики и отметки — кнопка «слушать отсюда», звучащая реплика
подсвечивается; пробел — играть/пауза, ←/→ — 5 с.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b82e259
2 октября 2026 г.
Cargo.toml
[package]
name = "skillok-meet"
version = "1.3.0"
description = "Skillok Meet — запись, расшифровка и разбор встреч Zoom"
edition = "2021"
rust-version = "1.90"
[lib]
name = "skillok_meet_lib"
# Только для настольных систем: staticlib и cdylib Tauri нужны для iOS и Android,
# а cdylib под Windows ещё и не компонуется со статической средой C (+crt-static).
crate-type = ["rlib"]
[build-dependencies]
tauri-build = { version = "2.7", features = [] }
[dependencies]
tauri = { version = "2.12", features = ["protocol-asset"] }
tauri-plugin-dialog = "2"
tauri-plugin-opener = "2"
meet-audio = { path = "../crates/audio" }
meet-voices = { path = "../crates/voices" }
base64 = "0.22"
tokio = { version = "1", features = ["rt", "sync", "time", "macros"] }
tokio-util = "0.7"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
reqwest = { version = "0.12", default-features = false, features = ["json", "default-tls"] }
keyring = { version = "3.6", features = ["apple-native", "windows-native"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "std"] }
[dev-dependencies]
tempfile = "3"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "test-util"] }