Fork me on GitHub

iOS tutorial 9:本地视频播放

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

    1
    2
    3
    4
    5
    class VideoCell: UITableViewCell {

    @IBOutlet var previewImageView: UIImageView!
    @IBOutlet var nameLabel: UILabel!
    @IBOutlet var sourceLabel: UILabel!
  • 添加一个video枚举,用来存储视频信息。

    1
    2
    3
    4
    5
    struct video {
    let image: String
    let title: String
    let source: String
    }
  • 使ViewController符合table view代理和数据的协议,并实现所需方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    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

    }
  • 引入播放视频所需框架,并定义相关变量。

1
2
3
4
5
6
7
import AVFoundation
import AVKit

...

var playViewController : AVPlayerViewController?
var playerView : AVPlayer?
  • 实现视频播放按钮方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
@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

参考: 30DaysofSwift

坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文标题: iOS tutorial 9:本地视频播放
  • 本文作者: AndyRon
  • 发布时间: 2017年08月19日 - 12:21
  • 最后更新: 2018年11月07日 - 19:49
  • 本文链接: http://andyron.com/2017/ios-tutorial-9.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!