Вот код, который показывает, как вы можете создать AVMutableComposition
, содержащий только желаемую дорожку, а затем воспроизвести композицию, как если бы вы играли любую AVAsset
, потому что, возможно, на удивление, учитывая название, она одна:
let asset = AVURLAsset(url: url)
let track = asset.tracks[1] // or whatever
let composition = AVMutableComposition()
let compositionTrack = composition.addMutableTrack(withMediaType: track.mediaType, preferredTrackID: kCMPersistentTrackID_Invalid)
try! compositionTrack?.insertTimeRange(CMTimeRange(start: .zero, duration: asset.duration), of: track, at: .zero)
let playerItem = AVPlayerItem(asset: composition) // play me in your AVPlayer
NB в реальной жизни tracks
и duration
, вероятно, должны загружаться асинхронно.