VersaPlayer
Versatile Video Player implementation for iOS, macOS, and tvOS
... implement VersaPlayerDecryptionDelegate and assign it to VersaPlayer's decryptionDelegate property. To make use of different media tracks, such as audio, video, or captioning, use VersaPlayerMediaTracks, found in VersaPlayer class. Video tracks are most helpfull when dealing with different renditions or different streams per video quality.