AVFoundationで動画のサイズを変える

 

環境

  • Swift
  • swift
  • Swift3.0
  • swift3.0
  • Xcode8
  • XCODE
  • AVFoundation
  • AVURLAsset

実行

onn.gif

on.gif

説明

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 {
}
藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事