gpt4 book ai didi

ios - 应用程序在 swift 中为所有视频 PHAsset 播放相同的视频

转载 作者:行者123 更新时间:2023-11-29 05:32:45 25 4
gpt4 key购买 nike

我有一个简单的应用程序,可以显示 iPhone 照片库中的所有视频(使用 PHAsset)。我能够显示所有视频的缩略图(在 Collection View 中),但是当我点击任何视频时,它仅播放相同的视频,我没有对任何网址进行硬编码。下面是代码,不知道哪里错了。

  1. 获取视频资源
var va: PHFetchResult<PHAsset>!

override func viewDidLoad() {
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: false) ]
fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.video.rawValue)
va = PHAsset.fetchAssets(with: fetchOptions)
}
  1. 点击 Collection View 中的视频缩略图时,创建新的 UIViewController 并传递 Assets 数据
 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath)
let vc=videoVC()
vc.vasset = self.va
vc.passedContentOffset = indexPath
self.navigationController?.pushViewController(vc, animated: true)
}
  • 终于播放视频
  • let Newasset = allAssets1[indexPath.row]
    PHCachingImageManager().requestAVAsset(forVideo: Newasset, options: nil) { (Newasset, audioMix, args) in
    let asset1 = asset as! AVURLAsset

    DispatchQueue.main.async {
    let player = AVPlayer(url: asset1.url)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.present(playerViewController, animated: true) {
    playerViewController.player!.play()
    }
    }
    }

    真的不确定我的代码哪里出了问题。

    最佳答案

    您可能需要检查您传递的indexPath,这应该可以工作。

    改变

    let Newasset = allAssets1[indexPath.row]

    let Newasset = allAssets1[indexPath.item]

    关于ios - 应用程序在 swift 中为所有视频 PHAsset 播放相同的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378810/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com