8 changed files with 257 additions and 247 deletions
-
4kplayer.xcodeproj/project.pbxproj
-
1kplayer/AppDelegate.swift
-
11kplayer/core/MediaItem.swift
-
9kplayer/core/NetworkManager.swift
-
104kplayer/detail/AVPlayerController.swift
-
11kplayer/master/MasterViewController.swift
-
251kplayer/video/BMPlayer.swift
-
111kplayer/video/KBMPlayer.swift
@ -1,111 +0,0 @@ |
|||
// |
|||
// BMPlayer.swift |
|||
// Pods |
|||
// |
|||
// Created by BrikerMan on 16/4/28. |
|||
// |
|||
// |
|||
|
|||
import UIKit |
|||
//import SnapKit |
|||
import MediaPlayer |
|||
|
|||
/** |
|||
internal enum to check the pan direction |
|||
|
|||
- horizontal: horizontal |
|||
- vertical: vertical |
|||
*/ |
|||
enum BMPanDirection: Int { |
|||
case horizontal = 0 |
|||
case vertical = 1 |
|||
} |
|||
|
|||
open class KBMPlayer: BMPlayer { |
|||
open var zoom = Float(1.0) |
|||
open var aspectx = Float(1.0) |
|||
open var aspecty = Float(1.0) |
|||
var xpos = 0.0 |
|||
var ypos = 0.0 |
|||
|
|||
open var pinchGesture: UIPinchGestureRecognizer! |
|||
open var moveGesture: UIPanGestureRecognizer! |
|||
|
|||
public override init(customControlView: BMPlayerControlView?) { |
|||
super.init(customControlView: customControlView) |
|||
initGesture() |
|||
|
|||
} |
|||
|
|||
private func initGesture() { |
|||
pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(self.pinched(_:))) |
|||
self.addGestureRecognizer(pinchGesture) |
|||
// moveGesture = UIPanGestureRecognizer(target: self, action: #selector(self.moved(_:))) |
|||
// moveGesture.minimumNumberOfTouches = 2 |
|||
// moveGesture.maximumNumberOfTouches = 2 |
|||
// self.addGestureRecognizer(moveGesture) |
|||
} |
|||
|
|||
required public init?(coder aDecoder: NSCoder) { |
|||
super.init(coder: aDecoder) |
|||
initGesture() |
|||
} |
|||
@objc open override func panDirection(_ pan: UIPanGestureRecognizer) { |
|||
if pan.numberOfTouches <= 1 { |
|||
super.panDirection(_: pan) |
|||
} |
|||
else { |
|||
let velocityPoint = pan.velocity(in: self) |
|||
|
|||
xpos += (Double(velocityPoint.x) / 50.0) |
|||
ypos += (Double(velocityPoint.y) / 50.0) |
|||
|
|||
transformLayer() |
|||
} |
|||
} |
|||
|
|||
@objc fileprivate func moved(_ gestureRecognizer: UIPanGestureRecognizer) { |
|||
} |
|||
|
|||
@objc fileprivate func pinched(_ gestureRecognizer: UIPinchGestureRecognizer) { |
|||
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed { |
|||
zoom *= Float(gestureRecognizer.scale) |
|||
|
|||
gestureRecognizer.scale = 1.0 |
|||
|
|||
transformLayer() |
|||
} |
|||
|
|||
} |
|||
|
|||
// open override func horizontalMoved(_ value: CGFloat) { |
|||
// if zoom <= -1.0 { |
|||
// super.horizontalMoved(value) |
|||
// xpos = 0.0 |
|||
// ypos = 0.0 |
|||
// } |
|||
// else { |
|||
// xpos += (Double(value) / 50.0) |
|||
// } |
|||
// transformLayer() |
|||
// } |
|||
|
|||
private func transformLayer() { |
|||
let t = CATransform3DMakeTranslation(CGFloat(xpos), CGFloat(ypos), 0.0) |
|||
playerLayer!.layer.transform = CATransform3DScale(t, CGFloat(zoom * aspectx), CGFloat(zoom * aspecty), 1.0) |
|||
} |
|||
|
|||
|
|||
// open override func verticalMoved(_ value: CGFloat) { |
|||
// if zoom <= -1.0 { |
|||
// // super.verticalMoved(value) |
|||
// xpos = 0.0 |
|||
// ypos = 0.0 |
|||
// } |
|||
// else { |
|||
// ypos += (Double(value) / 50.0) |
|||
// } |
|||
// transformLayer(); |
|||
// } |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue