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: - 开始录制