gpt4 book ai didi

ios - 按下完成后停止 AV 播放器

转载 作者:行者123 更新时间:2023-11-30 13:18:20 28 4
gpt4 key购买 nike

我将本地视频加载到新的 View Controller 中,但在完成后它会消失并立即再次弹出。我不知道是否有办法跟踪通知或什么。

这是我的代码:

import UIKit
import AVKit
import AVFoundation

class VideoController1: UIViewController {

var playerViewController = AVPlayerViewController()
var playerView = AVPlayer()

override func viewDidLoad() {
super.viewDidLoad()
}

override func viewDidAppear(_ animated: Bool) {
let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4")
playerView = AVPlayer(url: fileURL as URL)
playerViewController.player = playerView
self.present(playerViewController, animated: true){
self.playerViewController.player?.play()
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

最佳答案

你输入你的代码

let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4")
playerView = AVPlayer(url: fileURL as URL)
playerViewController.player = playerView
self.present(playerViewController, animated: true){
self.playerViewController.player?.play()
}

ViewController 的 ViewDidAppear 内部。

ViewDidAppear() 当您的 View 再次出现在屏幕上时发生。所以这意味着,当 AVPlayer 关闭时,它会返回到该 View ,并且 AVPlayer 将再次呈现。

您有 2 个选择:

创建一个 UIButton 和该按钮的操作

var button = UIButton(frame: CGRect(0, self.view.frame.height*0.9, self.view.frame.width, self.view.frame.height*0.1))
button.addTarget(self, #selector(VideoController1.playController), nil)
self.view.addSubview(button)

let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4")

func playController() {
playerView = AVPlayer(url: fileURL as URL)
playerViewController.player = playerView
self.present(playerViewController, animated: true){
self.playerViewController.player?.play()
}
}

-- 或 --

如果您希望 Controller 仅在用户第一次看到 View 时播放(仅此而已),那么您可以这样做

var played = false

func viewDidAppear() {
if(!played) {
let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4")
playerView = AVPlayer(url: fileURL as URL)
playerViewController.player = playerView
self.present(playerViewController, animated: true){
played = true
self.playerViewController.player?.play()
}
}
}

不要在上面的代码中引用我的内容,只需快速输入它即可给您一个总体思路。

关于ios - 按下完成后停止 AV 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020139/

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