Ios AVPlayer处于ReadyToPlay状态,但无法开始播放
以下是我开始视频的代码:Ios AVPlayer处于ReadyToPlay状态,但无法开始播放,ios,avfoundation,avplayer,avasset,avurlasset,Ios,Avfoundation,Avplayer,Avasset,Avurlasset,以下是我开始视频的代码: let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") let playerAV = AVPlayer(url: videoURL! as URL) let playerLayerAV = AVPlayerLayer(player: playerAV) playerLayerAV.frame = ... self.view.layer.addSublayer(p
let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let playerAV = AVPlayer(url: videoURL! as URL)
let playerLayerAV = AVPlayerLayer(player: playerAV)
playerLayerAV.frame = ...
self.view.layer.addSublayer(playerLayerAV)
playerAV.play()
我可以看到视频预览,我也可以看到它正在加载,我甚至可以移动滑块,看到预览正在改变我选择的时间。但是如果我按play键,什么也不会发生。我试图手动按下“播放”按钮,我试图以编程方式调用.play
,“播放”按钮的状态更改为“| |”,但随后立即切换回“>”
我也在跟踪与播放器状态相关的调试信息,我注意到以下几点。就在我创建玩家时,状态如下:
Status: ReadyToPlay
TimeControl: WaitingToPlayAtSpecifiedRate
ReasonToWait: AVPlayerWaitingToMinimizeStallsReason
Time: {0/1 = 0.000}
Rate: 1
Loaded Time Ranges: [Location=0,Length=0]
它几乎可以立即更改其时间控制:暂停和速率:0:
Status: ReadyToPlay
TimeControl: Paused
ReasonToWait:
Time: {0/1 = 0.000}
Rate: 0
Loaded Time Ranges: [Location=0,Length=0]
在这两种情况下,它都显示playerItem.LoadedTimeRanges
有一个元素,但当UI显示视频已完全加载并准备播放时,长度和位置为0
结果表明,视频、视图或控制器设置没有问题。由于共享
音频会话
的模式,视频已加载并准备好播放并立即暂停。它以前被设置为.record
,以处理另一个应用程序用例
解决方案是恢复原始的音频会话
模式,该模式包括播放,视频将在没有任何问题的情况下播放