AVPlayer with multiple audio tracks plays audio differently when start

Hi, I'm trying to play multiple video/audio file with AVPlayer using AVMutableComposition. Each video/audio file can process simultaneously so I set each video/audio in individual tracks. I use only local file.

let second =  CMTime(seconds: 1, preferredTimescale: 1000)
let duration = CMTimeRange(start: .zero, duration: second)
var currentTime = CMTime.zero

for _ in 0...4 {
    let mutableTrack = composition.addMutableTrack(
        withMediaType: .audio, 
        preferredTrackID: kCMPersistentTrackID_Invalid
    )

    try mutableTrack?.insertTimeRange(
        duration, 
        of: audioAssetTrack, 
        at: currentTime
    )

    currentTime = currentTime + second
}

When I set many audio tracks (maybe more than 5), the first part sounds a little different from original when it starts. It seems like audio's front part is skipped.

But when I set only two tracks, AVPlayer plays as same as original file.

avPlayer.play()

How can I fix it? Why do audio tracks affect that don't have any playing parts when start? Please let me know.

Post not yet marked as solved Up vote post of Mandeuk Down vote post of Mandeuk
607 views