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。体验优化,不阻塞主线。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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