iOS tutorial 9:本地视频播放

参考: 30DaysofSwift

  • 新建项目PlayLocalVideo
  • 在IB中使View ControllerEmbed In > Navigation Controller,并在View Controller**中添加UITableViewUITableViewCell
  • 在上面的UITableViewCell的中添加一个UIImageView作为视频的预览图、一个UIButton作为开始播放、两个UILabel分别用于显示视频的名称和来源。并修改一定样式和添加一定约束
  • 添加几张图片和一个视频
  • 添加一个cell的类,并添加三个接口。
class VideoCell: UITableViewCell {

    @IBOutlet var previewImageView: UIImageView!
    @IBOutlet var nameLabel: UILabel!
    @IBOutlet var sourceLabel: UILabel!
  • 添加一个video枚举,用来存储视频信息。
struct video {
    let image: String
    let title: String
    let source: String
}
  • 使ViewController符合table view代理和数据的协议,并实现所需方法:
   func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 220
    }
    
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 2
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! VideoCell
        
        let video = data[indexPath.row]
        
        cell.previewImageView.image = UIImage(named: video.image)
        cell.nameLabel.text = video.title
        cell.sourceLabel.text = video.source
        
        return cell
        
    }
  • 引入播放视频所需框架,并定义相关变量。
import AVFoundation
import AVKit

...

    var playViewController : AVPlayerViewController?
    var playerView : AVPlayer?
  • 实现视频播放按钮方法。
    @IBAction func playVideo(_ sender: UIButton) {
        let path = Bundle.main.path(forResource: "KL", ofType: "mp4")
        
        playerView = AVPlayer(url: URL(fileURLWithPath: path!))
        
        playViewController = AVPlayerViewController()
        playViewController?.player = playerView
        
        present(playViewController!, animated: true, completion: {
            self.playViewController?.player?.play()
        })
        
    }

详细代码: PlayLocalVideo

你可能感兴趣的:(iOS tutorial 9:本地视频播放)