yumoqing
ff4902ffe6
fix: 视频只有一帧+音频超长——重写录制时间基准和音频限速
视频修复:
- startSession(atSourceTime: .zero) 替代 itemTime
- 之前 session 起点是绝对 itemTime(如120s),但 sample 时间戳
是相对的(0, 1/30...),writer 因 0<120 丢弃帧
- 现在统一用 player.currentTime() 作为共享时间基准
音频修复:
- 用 DispatchSourceTimer(20ms) 替代 requestMediaDataWhenReady
- 每 20ms 检查实时进度(elapsed wall-clock),只写入不超前的音频
- 超前的 sample 缓存到 pendingAudioSample 等下次 tick
- 停止时 cancel timer + cancel reader,音频长度精确对齐视频
音视频同步:
- 两者共享 recordStartTime = player.currentTime()
- 视频: itemTime - recordStartTime
- 音频: audioPTS - recordStartTime
2026-06-24 22:08:09 +08:00
..
2026-06-23 08:44:34 +08:00
2026-06-23 09:09:23 +08:00
2026-06-24 19:56:07 +08:00
2026-06-22 00:36:18 +08:00
2026-06-24 21:19:10 +08:00
2026-06-24 22:08:09 +08:00
2026-06-22 00:04:06 +08:00
2026-06-24 19:28:38 +08:00
2026-06-22 01:16:49 +08:00