iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
1
Software Development

iOS 從 Objective-c 進化為 Swift 的 30天之旅系列 第 30

[Day 30] Swift AVPlayer 播放影片 簡單介紹實作

  • 分享至 

  • xImage
  •  

前言

今天應該是鐵人賽的最後一天 打從鐵人賽開始的時候
剛好是我的公司倒閉的時候 那時的我很徬徨
因為我剛買了房子 存款近乎是歸零的狀態
遇到公司倒閉 可說是屋漏偏逢連夜雨
公司跟我們說有資遣費 但要配合簽署自願離職
我也是很無奈只能配合了 離職後的我就開始投遞履歷
一天面試兩家公司 到處看看別的公司如何
但因為我先在搬到台中 這邊公司薪水偏低
要不然就是薪水偏高但屬於敏感行業
我聽性我女友的話 都開高價位
說是要讓他們有殺價空間 但經過兩個禮拜後
我發現台中的公司好像不吃這套 如果超出過多連談都不想談
爾且多數iOS真的都使用Swift做開發了
當初學OC時真的也是很衰
學玩去當個兵 全世界都改變了
所以才有契機來寫這個鐵人賽
但認真沒時間寫 回家都只有短短幾小時
研究完實驗 實驗成功寫網站
真的很累 要跟面試官搏鬥鬥腦力
回家腦袋全空 很難發揮
但在這一個月真的學到不少
也順利找到工作 薪資不錯
希望這次的公司不要這麼容易倒

AVPlayer

因為工作的關西開始接觸影片播放
今天時間有限就先介紹AVPlay
為什麼要先介紹他呢 還有其他幾種
因為他有AV Player
異常的親近
使用起來也很簡單

首先先import AVFoundation

import AVFoundation

宣告你的AV夥伴

var player : AVPlayer?

做一個lazy 懶加載
這部分我還沒研究lazy
下次會再補上這個功能介紹

private lazy var layer : AVPlayerLayer = {
    let remoteURL = NSURL(string: "https://www.legacyvet.com/sites/default/files/videos/Video%20%281%29.mp4")
    self.player = AVPlayer(url: remoteURL! as URL)
    let layer = AVPlayerLayer(player: self.player)
    return layer
}()

viewDidLoad add出來

override func viewDidLoad() {
    super.viewDidLoad()
    view.layer .addSublayer(self.layer)
}

記得讓play佔滿整個 view

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    layer.frame = view.bounds
}

最後再button加一個play
就完成了

@IBAction func clickTest(_ sender: Any) {
    player?.play()
}

Demo time


上一篇
[Day 29] Swift 影片MOV轉MP4
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
jason0shi
iT邦新手 5 級 ‧ 2020-03-20 09:54:14

全部看完了,祝版主工作順利

我要留言

立即登入留言