今天要分享的是,如何用 AVPlayerViewController 显示影片
成品:
{%youtube wCKodbvifQM %}
快速介绍 AVFoundation、AVKit:
AVFoundation:
处理基於时间的视听媒体。
可以轻松播放、创建和编辑 QuickTime 电影和 MPEG-4 文件,支援 HLS ( HTTP Live Streaming 媒体传输协议 ),并在应用程序中构建强大的媒体功能。
AVKit:
基於 AVFoundation 框架,提供播放影片内容的介面、建立媒体播放服务。
主要包含 AVPictureInPictureController、AVPlayViewController
在 project 加入影片档
从 storyboard 设计画面
由於 AVPlayerViewController 来自 AVKit,因此必须import AVKit
此外 AVKit 基於 AVFoundation 框架,因此必须import AVFoundation
在 @IBAction 设定 AVPlayerViewController 的播放影片,因为有三个 Button ,因此用 switch 判断按到哪一个 Button 。
@IBAction func didTapButton (btn: UIButton){
switch btn {
case btn1:
let player1 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "151", ofType: "mov")!))
let vc1 = AVPlayerViewController()
vc1.player = player1
present(vc1, animated: true)
case btn2:
let player2 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "152", ofType: "mov")!))
let vc2 = AVPlayerViewController()
vc2.player = player2
present(vc2, animated: true)
default:
let player3 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "swag", ofType: "mov")!))
let vc3 = AVPlayerViewController()
vc3.player = player3
present(vc3, animated: true)
}
}
forResource: "影片名称"
ofType: "档案格式"
附上完整程序码
import UIKit
import AVKit
import AVFoundation
class MainVC: UIViewController {
@IBOutlet weak var btn1: UIButton!
@IBOutlet weak var btn2: UIButton!
@IBOutlet weak var btn3: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setNavigationBarHidden(true, animated: false) // 隐藏指示条
}
@IBAction func didTapButton (btn: UIButton){
switch btn {
case btn1:
let player1 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "151", ofType: "mov")!))
let vc1 = AVPlayerViewController()
vc1.player = player1
present(vc1, animated: true)
case btn2:
let player2 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "152", ofType: "mov")!))
let vc2 = AVPlayerViewController()
vc2.player = player2
present(vc2, animated: true)
default:
let player3 = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "swag", ofType: "mov")!))
let vc3 = AVPlayerViewController()
vc3.player = player3
present(vc3, animated: true)
}
}
}
这样就完成显示影片啦!明天会分享新的实作,敬请期待!
>>: 30天打造品牌特色电商网站 Day.22 图片排版实作
昨天大致谈了网站内容是怎麽被下载到电脑里的,今天稍微深入一点聊聊关於 HTTP 这个协定的一些简单并...
今天来讲解 this 相关的陷阱题 第一题 myName = '全域'; var person = ...
经过Day02的流程,我们已经可以使用Windows内建的文字编辑器搭配「命令提示字元」进行pyth...
今天进度 : 鸟哥的 Linux 私房菜 -- 连上 Internet 的方法与步骤 尝试使用 df...
假如可以随时随地随心地聆听歌曲就好了!那怎麽将 iTunes 音乐存放在不同的设备中,让它在不同的音...