AVPlayerItemduration作为计算属性的问题
创始人
2024-11-13 03:00:05
0

AVPlayerItem的duration属性是一个计算属性,表示当前项目的持续时间。为了保证duration属性正确,需要等待项目的基础媒体数据准备完毕,否则duration将返回0。解决方案是在使用duration属性前,先确保项目的基础媒体数据已经准备完毕。

以下是一个使用AVPlayer和AVPlayerItem的示例代码:

let url = URL(string: "http://example.com/video.mp4")
let playerItem = AVPlayerItem(url: url!)
let player = AVPlayer(playerItem: playerItem)

playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.new], context: nil)

...

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
   if keyPath == #keyPath(AVPlayerItem.status) {
      let status: AVPlayerItem.Status
      
      if let statusNumber = change?[.newKey] as? NSNumber {
         status = AVPlayerItem.Status(rawValue: statusNumber.intValue)!
      } else {
         status = .unknown
      }
      
      switch status {
      case .readyToPlay:
          let duration = playerItem.duration
          //使用duration属性
      case .failed:
          //处理错误
      case .unknown:
          break
      }
   }
}

相关内容

热门资讯

开挂辅助脚本"hhp... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
指导大家“Wepoker偷偷看... Wepoker偷偷看牌的官方解释是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要...
开挂辅助软件"hhp... 开挂辅助软件"hhpoker怎么防辅助"开挂(透视)辅助软件(有挂助手)您好:hhpoker怎么防辅...
2分钟细说“wpk辅助挂”开挂... 您好,wpk辅助挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款...
开挂辅助安装"wep... 开挂辅助安装"wepoker数据分析工具"开挂(透视)辅助神器(今日头条) 【无需打开直接搜索加薇1...
科普攻略“德州wpk透视辅助器... 无需打开直接搜索加微信客服(136704302)咨询了解德州wpk透视辅助器辅助器目前(微信:136...
开挂辅助软件"wep... 开挂辅助软件"wepoker能不能透视"开挂(透视)辅助安装(存在有挂)>>您好:软件加136704...
记者揭秘“wepoker开挂透... 您好:wepoker开挂透视这款游戏是可以开挂的,软件加【添加微信客服136704302】确实是有挂...
开挂辅助工具"pok... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
玩家爆料“wepoker机制”... >>您好:wepoker机制软件加扣扣群确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...