gpt4 book ai didi

ios - 在像 GIF 一样循环播放的 UIView 中自动播放 MP4 视频?

转载 作者:行者123 更新时间:2023-11-28 05:46:45 27 4
gpt4 key购买 nike

一旦用户转到此特定页面,我希望视频立即开始在没有控件的 UIView 中播放。它会像 gif 一样循环播放。这是我从 github 上找到的代码,它似乎不起作用。当我拉起页面时,它只显示白色的 UIView。我的文件名也是正确的。

import Foundation
import UIKit
import AVKit
import AVFoundation

class RampWallPush: UIViewController {

@IBOutlet weak var videoView: UIView!

var player: AVPlayer?

override func viewDidLoad() {
super.viewDidLoad()

// Load video resource
if let videoUrl = Bundle.main.url(forResource: "small", withExtension: "mp4") {

// Init video
self.player = AVPlayer(url: videoUrl)
self.player?.isMuted = true
self.player?.actionAtItemEnd = .none

// Add player layer
let playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
playerLayer.frame = view.frame

// Add video layer
self.videoView.layer.addSublayer(playerLayer)

// Play video
self.player?.play()

// Observe end
NotificationCenter.default.addObserver(self, selector: #selector(playerItemDidReachEnd), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.player?.currentItem)
}
}

// MARK: - Loop video when ended.
@objc func playerItemDidReachEnd(notification: NSNotification) {
self.player?.seek(to: CMTime.zero)
self.player?.play()
}

}

最佳答案

您的代码可以正常工作,您需要验证该文件是否存在于您的项目中并且......

    // Load video resource
if let videoUrl = Bundle.main.url(forResource: "sample", withExtension: "mp4") {
// exists
}
else {

print("NoFile")
}

所以选择文件和

enter image description here


你需要改变框架

 playerLayer.frame = CGRect(x:0,y:0,width:200,height:300) 
self.videoView.layer.addSublayer(playerLayer)
playerLayer.center = videoView.center

创建了一个演示 Here

关于ios - 在像 GIF 一样循环播放的 UIView 中自动播放 MP4 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380925/

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