AVFoundationで動画のサイズを変える
環境
- Swift
- swift
- Swift3.0
- swift3.0
- Xcode8
- XCODE
- AVFoundation
- AVURLAsset
実行
説明
AVFoundationでViewに描画した動画のサイズを変えてViewに描画してみます。
import UIKit
import AVFoundation
class ViewController: UIViewController {
//動画のURLを定義
var url: URL = {
var url = URL(string: "https://160.16.120.119/jj.m4v")
return url!
}()
/*
下記から動画画面の実装
*/
lazy var asset: AVURLAsset = {
var asset: AVURLAsset = AVURLAsset(url: self.url)
asset.resourceLoader.setDelegate(self, queue: DispatchQueue.main)
return asset
}()
lazy var playerItem: AVPlayerItem = {
var playerItem: AVPlayerItem = AVPlayerItem(asset: self.asset)
return playerItem
}()
lazy var player: AVPlayer = {
var player: AVPlayer = AVPlayer(playerItem: self.playerItem)
player.actionAtItemEnd = AVPlayerActionAtItemEnd.none
return player
}()
//動画の画面
lazy var playerLayer: AVPlayerLayer = {
var playerLayer: AVPlayerLayer = AVPlayerLayer(player: self.player)
playerLayer.frame = CGRect(x: 0, y: 0, width: 50, height: 580)
//CGRect(x: 0, y: 0, width: 100, height: 100)
//UIScreen.main.bounds
playerLayer.backgroundColor = UIColor.clear.cgColor
return playerLayer
}()
override func viewDidLoad() {
super.viewDidLoad()
view.layer.addSublayer(playerLayer)
player.play()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
extension ViewController : AVAssetResourceLoaderDelegate {
}