How to check if AVPlayer has Video or just Audio?

后端 未结 4 1791
一向
一向 2021-01-12 09:48

I try to play some \"media\" but at the time the AVPlayer starts I don\'t know if it is audio or Video.

I connected the player Layer and it works fine.



        
4条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-12 10:24

    For Swift 4.2 you can do the following:

    func isAudioAvailable() -> Bool? {
       return self.player?._asset?.tracks.filter({$0.mediaType == AVMediaType.audio}).count != 0   
    }
    
    func isVideoAvailable() -> Bool? {
       return self.player?._asset?.tracks.filter({$0.mediaType == AVMediaType.video}).count != 0   
    }
    

    or as extension

    extension AVPlayer {
        var isAudioAvailable: Bool? {
            return self._asset?.tracks.filter({$0.mediaType == AVMediaType.audio}).count != 0
        }
    
        var isVideoAvailable: Bool? {
            return self._asset?.tracks.filter({$0.mediaType == AVMediaType.video}).count != 0
        }
    }
    

提交回复
热议问题