帮助中心 >
  关于独立服务器 >
  如何设置AVPlayer播放在线视频和本地文件
如何设置AVPlayer播放在线视频和本地文件
时间 : 2024-10-14 14:09:04
编辑 : Jtti

AVPlayer作为一个功能强大的媒体播放框架,可以播放本地和网络视频,本文华纳云为大家分享如何通过AVPlayer播放在线视频和本地文件,含数据库中读取视频文件的设置方法。

/uploads/images/202410/14/ee9d294a79a5176678bb173610345971.jpg  

如果是需要播放一个在线视频,先提供这个在线视频的URL,使用AVPlayerItem 和 AVPlayer 来加载和播放视频。主要步骤为:使用 AVPlayer 的前提是在项目中导入 AVFoundation 框架,所以需要先导入 AVFoundation 框架。创建 AVPlayerItem,用视频的 URL 创建一个 AVPlayerItem 实例:

let videoURL = URL(string: "https://example.com/video.mp4")!let playerItem = AVPlayerItem(url: videoURL)

创建 AVPlayer, 使用 AVPlayerItem 实例创建一个 AVPlayer 对象:

let player = AVPlayer(playerItem: playerItem)

调用 AVPlayer 的 play 方法开始播放视频:

player.play()

添加 AVPlayerLayer 显示视频;如果你需要在自定义的 UIView 中显示视频,可以使用 AVPlayerLayer:

let playerLayer = AVPlayerLayer(player: player)

playerLayer.frame = view.bounds

view.layer.addSublayer(playerLayer)

如果是播放本地视频,如本地数据库中读取的视频文件,步骤为:先从数据库中读取到视频文件的路径,根据需求从数据库中查询视频文件路径。

创建 AVPlayerItem,使用本地视频文件的路径创建一个 AVPlayerItem 实例。

let localVideoPath = "path/to/your/local/video.mp4"let localVideoURL = URL(fileURLWithPath: localVideoPath)let playerItem = AVPlayerItem(url: localVideoURL)

创建 AVPlayer,使用 AVPlayerItem 实例创建一个 AVPlayer 对象。

let player = AVPlayer(playerItem: playerItem)

播放视频,调用 AVPlayer 的 play 方法开始播放视频。

player.play()

添加 AVPlayerLayer 显示视频,如需自定义 UIView 中显示视频,可用 AVPlayerLayer。

let playerLayer = AVPlayerLayer(player: player)

playerLayer.frame = view.bounds

view.layer.addSublayer(playerLayer)

另外,AVPlayer 提供了多种监听播放状态的方法,例如监听播放进度、错误处理等。为 AVPlayer 添加监听器来响应这些事件。

// 监听播放状态变化

player.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 600), queue: nil) { [weak self] time in

self?.updatePlaybackTime(time: time)}

// 监听播放错误

player.replaceCurrentItem(with: playerItem)

playerItem.addObserver(self, forKeyPath: "status", options: .new, context: nil)

以上,就是关于使用AVPlayer 播放在线视频和本地文件的步骤,不管是从网络URL还是数据库中读取本地文件,AVPlayer 都提供了强大的支持,让视频播放变得简单而高效

JTTI-Defl
JTTI-COCO
JTTI-Selina
JTTI-Ellis
JTTI-Eom