AVPlayerViewController 中的完成按钮单击事件

objective

1个回答

写回答

wodexinyong

2025-06-15 23:40

+ 关注

Swift
Swift

AVPlayerViewController是一个用于播放视频的视图控制器,它提供了一些方便的方法和属性来控制视频的播放和显示。在用户完成观看视频后,可以通过监听完成按钮的单击事件来执行一些特定的操作。

在以下的案例中,我们将使用AVPlayerViewController来播放一个本地视频文件,并在用户点击完成按钮后显示一个弹窗来提示用户视频已经播放完毕。具体的实现步骤如下:

首先,创建一个AVPlayerViewController实例,并设置它的player属性为一个AVPlayer对象,该AVPlayer对象用于播放视频文件。

Swift

import UIKit

import AVKit

class ViewController: UIViewController {

var playerViewController: AVPlayerViewController!

override func viewDidLoad() {

super.viewDidLoad()

// 创建AVPlayerViewController实例

playerViewController = AVPlayerViewController()

// 创建AVPlayer对象并设置要播放的视频文件URL

let vIDEOURL = URL(fileURLWithPath: "path_to_vIDEO_file")

let player = AVPlayer(url: vIDEOURL)

playerViewController.player = player

// 监听完成按钮的单击事件

NotificationCenter.default.addObserver(self, selector: #selector(vIDEODidFinish), name: .AVPlayerItemDidPlayToEndTime, object: nil)

// 将AVPlayerViewController的视图添加到当前视图控制器的视图层级中

addChild(playerViewController)

view.addSubview(playerViewController.view)

playerViewController.view.frame = view.bounds

playerViewController.didMove(toParent: self)

}

@objc func vIDEODidFinish() {

// 视频播放完成后的操作

let alertController = UIAlertController(title: "视频播放完毕", message: "您已经观看完整个视频", preferredStyle: .alert)

let okAction = UIAlertAction(title: "确定", style: .default, handler: nil)

alertController.addAction(okAction)

present(alertController, animated: true, completion: nil)

}

}

在上述代码中,我们首先创建了一个AVPlayerViewController实例,并将其添加到当前视图控制器的视图层级中。然后,我们创建了一个AVPlayer对象并设置其player属性为该AVPlayer对象,以便将视频文件与AVPlayerViewController关联起来。接下来,我们使用NotificationCenter来监听完成按钮的单击事件,一旦视频播放到末尾,就会触发vIDEODidFinish方法。在该方法中,我们创建一个UIAlertController来显示一个弹窗,提示用户视频已经播放完毕。

以上就是使用AVPlayerViewController中完成按钮单击事件的案例代码和相关说明。通过这种方式,我们可以在视频播放完毕后执行一些特定的操作,以提供更好的用户体验。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号