使用AVPlayer播放的时候 在播放器init的时候,会有短暂的延迟卡顿!控制台会打印 -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery mode to DiscoveryMode_None 。
经过查证是AVPlayer在init的时候回去查找是否有Airplay这种外接设备!
虽然AVPlayer有allowsExternalPlayback属性可以控制外部播放的权限(但是这个属性默认是YES),修改这个属性并不能阻止 AVPlayer 在init的时候查找外部设备。
目前没有找到解决方案,先记录一下原因!
由于在项目中是用AVPlayer播放的本地音频,所以为了解决延迟卡顿问题,就用AVAudioPlayer代替播放本地音频!
果然替代AVPlayer之后,就没有短暂的延迟卡顿了.