From 70b264bcc877e569e132b1f8da3ef8aab453c0a2 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 27 Jun 2026 17:59:45 +0800 Subject: [PATCH] fix: revert to actual trackID for audioMix (kCMPersistentTrackID_Invalid never fires tap) --- Sources/PlayerRecorder.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Sources/PlayerRecorder.swift b/Sources/PlayerRecorder.swift index a66840e..7ae1b93 100644 --- a/Sources/PlayerRecorder.swift +++ b/Sources/PlayerRecorder.swift @@ -356,17 +356,18 @@ final class PlayerRecorder: NSObject { return } - // 创建 AudioMix — 用 kCMPersistentTrackID_Invalid 匹配所有音频轨道 - // HLS 流在 variant 切换时 audio track ID 会变,绑定具体 ID 会导致 tap 失效 + // 创建 AudioMix — 必须用实际 trackID + // kCMPersistentTrackID_Invalid (=0) 实测不会触发 tap let inputParams = AVMutableAudioMixInputParameters() - inputParams.trackID = kCMPersistentTrackID_Invalid + inputParams.trackID = audioTrack.trackID inputParams.audioTapProcessor = tapRef let audioMix = AVMutableAudioMix() audioMix.inputParameters = [inputParams] playerItem.audioMix = audioMix - NSLog("[Recorder] ✓ Audio tap installed on playerItem, trackID=%d", audioTrack.trackID) + NSLog("[Recorder] ✓ Audio tap installed: trackID=%d, asset tracks=%d, playerItem.audioMix set", + audioTrack.trackID, playerItem.asset.tracks.count) } // MARK: - 开始录制