skillok meeting
0fd9dec299001feea939bb2bf54891037292726b
Перейти к файлу
Код
meeting cratesaudiosrclib.rs
anc Запись всего звука, папка хранения, точнее распознавание - Звук собеседников — весь звук компьютера, кроме самого Skillok Meet: Zoom, Google Meet, Телемост, что угодно. Windows — process loopback в режиме исключения своего процесса, macOS — ScreenCaptureKit без фильтра по приложению. Поиск Zoom и зависимость windows убраны. - Если звук компьютера недоступен (на Mac — нет разрешения), запись идёт с микрофона, а интерфейс говорит почему. - Настройки: папка хранения записей (выбрать, открыть, вернуть по умолчанию; записи переносятся целиком), точность распознавания — по умолчанию полная whisper-large-v3. - «Открыть папку с файлами» у записи; микрофон на Mac просит у CoreAudio сразу 16 кГц. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 96a28a9 30 сентября 2026 г.
lib.rs
//! Звук встречи: захват, чтение файлов, формат и нарезка на куски для
//! распознавания. Всё, что не зависит от системы, проверяется тестами на любой
//! машине; сам захват — в модулях [`win`] (Windows) и [`mac`] (macOS).

pub mod chunker;
pub mod decode;
pub mod pcm;
pub mod source;

#[cfg(target_os = "macos")]
pub mod mac;
#[cfg(windows)]
pub mod win;

use source::{Capture, CaptureError};

/// Микрофон по умолчанию.
pub fn open_microphone() -> Result<Box<dyn Capture>, CaptureError> {
    #[cfg(windows)]
    return Ok(Box::new(win::Microphone::open()?));
    #[cfg(target_os = "macos")]
    return Ok(Box::new(mac::Microphone::open()?));
    #[cfg(not(any(windows, target_os = "macos")))]
    Err(CaptureError::Unsupported)
}

/// Весь звук, который выводит компьютер, кроме самого Skillok Meet: голоса
/// собеседников в любом сервисе встреч.
pub fn open_system_audio() -> Result<Box<dyn Capture>, CaptureError> {
    #[cfg(windows)]
    return Ok(Box::new(win::SystemAudio::open()?));
    #[cfg(target_os = "macos")]
    return Ok(Box::new(mac::SystemAudio::open()?));
    #[cfg(not(any(windows, target_os = "macos")))]
    Err(CaptureError::Unsupported)
}

/// Запись встреч возможна на этой машине.
pub const CAPTURE_SUPPORTED: bool = cfg!(any(windows, target_os = "macos"));