Skip to content

录制音源改为设备音频(麦克风降级为可选旁白轨) #17

Closed

Description

@sunimp

背景

当前录制的音源是 Mac 麦克风(RecordingService 用 AVAudioRecorder)。但本工具是投屏录制工具,录制意义是留存设备屏幕上发生了什么。有意义的音源应是设备本身的声音(App 音效、视频、通话),而非麦克风采到的房间环境音。

更糟:设备音频正通过 Mac 扬声器外放,麦克风又把外放录回去 → 回声 + 环境噪音,对回看测试无价值。

现状:设备音频已在管线中,仅用于播放未落盘

  • iOS(IOSDeviceSource.handleAudioSampleBuffer):拿到设备音频 CMSampleBuffer,现仅喂 AudioPlayer 播放。CMSampleBuffer 是 AVAssetWriter 标准输入,接 writer 即可落盘。
  • Android(ScrcpyDeviceSource opusDecoder.onDecodedAudio):拿到解码后 PCM,现仅推播放器。同一路 PCM 分流做 AAC 编码即可写文件。

方案(已与维护者确认)

待确认 / 待验证

  1. iOS CMSampleBuffer 音频是否始终可得(ReplayKit/CoreMediaIO 采集路径与授权),需实测。
  2. 多设备同时录:每设备一条音轨(契合现有 iOS-xxx/、Android-xxx/ 目录),还是混一路。
  3. 回放端多音轨/音轨选择的 UI 与 ReplayClock 适配。

相关

Activity

  1. sunimp commented on Jul 9, 2026

    @sunimp
    CollaboratorAuthor

    方案纠正:主/次音轨反了

    经维护者确认,本 issue 的定位有偏差。本工具的录制目的就是录麦克风(留存讲解/口述/QA 旁白),这也是当前 RecordingService(AVAudioRecorder + 麦克风)已实现的行为,PR #16 无需改动。

    • ❌ 本 issue 原方案:设备音频作主音轨,麦克风降级为可选旁白轨。
    • ✅ 正确方向:麦克风为主音轨(默认、核心),设备音频作为可选的第二音轨(默认关)。

    即主/次调换。故本 issue 作废,已另立方向正确的 issue 承接"设备音频作为可选第二音轨"。

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions