## 背景 当前录制的音源是 **Mac 麦克风**(`RecordingService` 用 `AVAudioRecorder`)。但本工具是**投屏录制工具**,录制意义是留存设备屏幕上发生了什么。有意义的音源应是**设备本身的声音**(App 音效、视频、通话),而非麦克风采到的房间环境音。 更糟:设备音频正通过 Mac 扬声器外放,麦克风又把外放录回去 → 回声 + 环境噪音,对回看测试无价值。 ## 现状:设备音频已在管线中,仅用于播放未落盘 - iOS(`IOSDeviceSource.handleAudioSampleBuffer`):拿到设备音频 `CMSampleBuffer`,现仅喂 `AudioPlayer` 播放。`CMSampleBuffer` 是 `AVAssetWriter` 标准输入,接 writer 即可落盘。 - Android(`ScrcpyDeviceSource` `opusDecoder.onDecodedAudio`):拿到解码后 PCM,现仅推播放器。同一路 PCM 分流做 AAC 编码即可写文件。 ## 方案(已与维护者确认) - **设备音频作为主音轨**;**麦克风保留为可选"口述旁白"第二音轨**(QA 录制常用),独立开关。 - 已落地的地基(PR #16 / #10):音频可选化、`RecordingSession.audioURL?`、`ReplayClock` 抽象(无音频用 `VirtualReplayClock`)—— 音源换成设备音频后直接复用。 ## 待确认 / 待验证 1. iOS `CMSampleBuffer` 音频是否始终可得(ReplayKit/CoreMediaIO 采集路径与授权),需实测。 2. 多设备同时录:每设备一条音轨(契合现有 `iOS-xxx/`、`Android-xxx/` 目录),还是混一路。 3. 回放端多音轨/音轨选择的 UI 与 `ReplayClock` 适配。 ## 相关 - 地基 PR: #16
Activity
偏好设置-权限:新增麦克风权限行 (#18)
sunimp commentedon Jul 9, 2026
方案纠正:主/次音轨反了
经维护者确认,本 issue 的定位有偏差。本工具的录制目的就是录麦克风(留存讲解/口述/QA 旁白),这也是当前
RecordingService(AVAudioRecorder+ 麦克风)已实现的行为,PR #16 无需改动。即主/次调换。故本 issue 作废,已另立方向正确的 issue 承接"设备音频作为可选第二音轨"。