CommunityVideoPlayView.swift 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // CommunityVideoPlayView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/7/3.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. class CommunityVideoPlayView: UIView {
  10. var assetURLString: String? {
  11. didSet {
  12. if let url = URL(string: assetURLString ?? "") {
  13. asset = AVAsset(url: url)
  14. }
  15. playerItem = AVPlayerItem(asset: asset!)
  16. player = AVPlayer(playerItem: playerItem)
  17. playerLayer = AVPlayerLayer.init(player: player)
  18. playerLayer.videoGravity = .resizeAspectFill
  19. self.layer.addSublayer(self.playerLayer)
  20. }
  21. }
  22. private var asset: AVAsset?
  23. private var playerItem: AVPlayerItem?
  24. private var playerLayer: AVPlayerLayer = AVPlayerLayer.init()
  25. private var player: AVPlayer?
  26. // private var indicatorView: UIActivityIndicatorView?
  27. init() {
  28. super.init(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight))
  29. initSubView()
  30. }
  31. override init(frame: CGRect) {
  32. super.init(frame: frame)
  33. initSubView()
  34. }
  35. required init?(coder aDecoder: NSCoder) {
  36. fatalError("init(coder:) has not been implemented")
  37. }
  38. func initSubView() {
  39. playerLayer = AVPlayerLayer.init(player: player)
  40. playerLayer.videoGravity = .resizeAspectFill
  41. self.layer.addSublayer(self.playerLayer)
  42. }
  43. override func layoutSubviews() {
  44. super.layoutSubviews()
  45. CATransaction.begin()
  46. CATransaction.setDisableActions(true)
  47. playerLayer.frame = self.layer.bounds
  48. CATransaction.commit()
  49. }
  50. func play() {
  51. player?.play()
  52. }
  53. // 暂停
  54. func pause() {
  55. player?.pause()
  56. }
  57. // func setupViews() {
  58. // self.backgroundColor = kf7f8faColor
  59. // addSubview(bgView)
  60. // bgView.addSubview(picButton)
  61. // bgView.addSubview(titleLabel)
  62. // }
  63. //
  64. // func setupLayouts() {
  65. // bgView.snp_makeConstraints { (make) in
  66. // make.top.equalTo(10)
  67. // make.left.right.bottom.equalToSuperview()
  68. // }
  69. // picButton.snp_makeConstraints { (make) in
  70. // make.top.equalTo(20)
  71. // make.left.equalTo(15)
  72. // make.right.equalTo(-15)
  73. // make.height.equalTo(100 * kScaleWidth)
  74. // }
  75. // titleLabel.snp_makeConstraints { (make) in
  76. // make.top.equalTo(picButton.snp_bottom).offset(20)
  77. // make.left.equalTo(14)
  78. // make.right.equalTo(-14)
  79. // make.height.equalTo(25)
  80. // }
  81. // }
  82. //
  83. // lazy var bgView: UIView = {
  84. // let bgView = UIView()
  85. // bgView.backgroundColor = .white
  86. // return bgView
  87. // }()
  88. //
  89. // lazy var picButton: UIButton = {
  90. // let picButton = UIButton(type: UIButton.ButtonType.custom)
  91. // let configModel = ConfigModel.shared.object()
  92. // picButton.kf.setBackgroundImage(with: kURLImage(name: configModel?.findFriendImg ?? ""), for: UIControl.State.normal, placeholder: kImage(name: "pic_preload"))
  93. // picButton.cornerRadius = 5
  94. // picButton.masksToBounds = true
  95. // picButton.rx.tap.subscribe(onNext: { _ in
  96. //
  97. // }).disposed(by: disposeBag)
  98. // return picButton
  99. // }()
  100. //
  101. // lazy var titleLabel: UILabel = {
  102. // let titleLabel = UILabel()
  103. // titleLabel.font = kBoldFont18
  104. // titleLabel.textColor = k333333Color
  105. // titleLabel.text = "推荐关注"
  106. // return titleLabel
  107. // }()
  108. }