magazine off

URLの動画を再生する Swift3

投稿日 : 2017年6月27日(火曜日)

on.gif

実装

import UIKit
import AVFoundation


//クロージャーを多用 }()
class ViewController: UIViewController {


    //動画のURLを定義
    var url: URL = {
        var url = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
        return url!
    }()


     /*
     下記から動画画面の実装
     */

    //AVURLAssetは持ってないから
    //AVAssetResourceLoaderDelegateをしないといけないからextensionする
    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 = 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 {
}

ソース

GitHub

Categories

Recent Posts

phpのエラーログってどこだっけ

   通常のアパッチであれば、これでいけるはず cd /var/lo…

投稿日 : 2018年3月20日(火曜日)

恋人と長続きする方法

 昔から恋人と長続きしないなって思ってたんですが、   何故…

投稿日 : 2018年5月4日(金曜日)

Macでターミナルからローカルipを確認する方法

 いくつか方法があります。 方法1 $ ipconfig getifaddr …

投稿日 : 2018年7月18日(水曜日)

macでpgを起動する方法

  $ postgres -D /usr/local/var/postgres …

投稿日 : 2018年11月21日(水曜日)