Skip to content

[#53 follow-up] 流式播放音频:立体声 + 分块/后台解码 #160

Description

@appergb

PR2 的 cpal 音频主时钟(#63)当前是单声道预混:playback_startspawn_blocking 把整条时间线音频 extract_pcm(mono)→ mix_clips 预混成一个 buffer 再喂 cpal。已能用且 A/V 同步正确,但两点可优化:

  1. 单声道 → 立体声/声相(pan):新增立体声流式解码(ffmpeg -ac 2 -ar <dev> -f f32le -,不复用 pcm.rs::raw_to_mono_f32——它会平均成单声道),cpal 回调按声道写。
  2. 一次性全量解码 → 后台分块填充:长工程启动有几秒解码延迟(已移出 IPC 线程,但仍全量)。改为 append-only buffer + AtomicUsize filled(回调只读 < filled 部分),边播边解,启动即响应。

涉及:crates/opentake-media/src/decode/audio_stream.rs(新)+ src-tauri/src/playback/audio.rs。体验优化,不阻塞主线。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions