swift 如何播放本地视频
swift如何播放本地视频
在接触ios开发的时候, 对于本地视频的播放这一功能, 遇到了一些困惑.
想要实现的效果
如上图所示, 就是想要固定大小的播放视频的区域, 然后可以点击播放.
为了实现该效果, 做了如下尝试
使用Avplayer
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidLoad()
//定义一个视频文件路径
let filePath = Bundle.main.path(forResource: "b", ofType: "mp4")
let videoURL = URL(fileURLWithPath: filePath!)
//定义一个playerItem,并监听相关的通知
let playerItem = AVPlayerItem(url: videoURL)
NotificationCenter.default.addObserver(self,
selector: #selector(playerDidFinishPlaying),
name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
object: playerItem)
//定义一个视频播放器,通过playerItem径初始化
let player = AVPlayer(playerItem: playerItem)
//设置大小和位置(全屏)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
//添加到界面上
self.view.layer.addSublayer(playerLayer)
//开始播放
player.play()
}
//视频播放完毕响应
@objc func playerDidFinishPlaying() {
print("播放完毕!")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
实现效果:
通过自带的avplayer可以实现, 如上图所示的效果, 但是没有再次播放按钮, 这就导致需要自己绑定一个button, 使得按钮与视频区域不是在一起.
然后还有就是用AVPlayerViewController来实现, 但是这是全屏播放的, 不是我想要的效果.
使用第三方插件
这里我使用的是github收藏有1.5k的BMPlayer, 但是发现可能没有人维护后, 对于iPhone X这种模具型号, 有些不适配.
希望有做和我类似效果的朋友, 可以指点一下, 目前对于我需要实现的效果, 用的是什么思路.
github.com/renzifeng/ZFPlayer.git
试试这个