相关疑难解决方法(0)

AVPlayerLayer 显示黑屏但声音正常

我尝试在AVPlayerLayer中显示本地录制的视频,该视频有时可以工作。我可以听到录制视频中的音频,但看不到视频。有时视频和音频都可以工作,有时只有音频。

我已经尝试过使用AVPlayerLayerAVPlayerViewController,但这两种情况都会出现相同的问题。所以这不是因为框架错误。

示例代码AVPlayerViewController

let player = AVPlayer(url: url)
let playerController = AVPlayerViewController()
playerController.player = player

self.present(playerController, animated: true) {
  player.play()
}
Run Code Online (Sandbox Code Playgroud)

示例代码AVPlayerLayer

let asset = AVAsset(url: url)
let item = AVPlayerItem(asset: asset)

self.player = AVPlayer(playerItem: item)
self.player?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
self.playerLayer = AVPlayerLayer(player: self.player!)
self.playerLayer?.frame = imageView.bounds
imageView.layer.addSublayer(self.playerLayer!)
Run Code Online (Sandbox Code Playgroud)

编辑1:

观察播放器状态时,错误nil状态readyToPlay

编辑2:

如果 URL 是远程的,则工作正常。

编辑3:

如果我在视频完成导出后等待几秒钟,似乎可以工作。是否是文件未 100% 写入文件系统的原因? …

avfoundation ios avplayerlayer swift avplayerviewcontroller

5
推荐指数
1
解决办法
3764
查看次数