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
-
253kplayer/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