2016-08-03 57 views
7

Ich möchte die Wiedergabe eines Videos mit AVPlayer drehen. Gibt es eine Möglichkeit, sie um 90 Grad im Uhrzeigersinn zu drehen?
Hier einige Code:Wie ändert man die Videoausrichtung des AVPlayers?

self.player = AVPlayer(URL: NSURL(fileURLWithPath: dataPath)) 
playerLayer = AVPlayerLayer.init(player: self.player) 
playerLayer.frame = view.bounds 

playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
view.layer.addSublayer(playerLayer) 
player.play() 

UPDATE

Dieses funktioniert:

self.player = AVPlayer(URL: NSURL(fileURLWithPath: dataPath)) 
playerLayer = AVPlayerLayer.init(player: self.player)          
playerLayer.setAffineTransform(CGAffineTransformMakeRotation(CGFloat(M_PI)) 
playerLayer.frame = view.bounds   
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
view.layer.addSublayer(playerLayer) 
player.play() 
+0

Blick auf diese http://stackoverflow.com/questions/13243847/avfoundation-avplayer-rotation –

+0

das Ziel c ist und ich habe absolut keine Erfahrung damit – mafioso

Antwort

2

Wenn Sie Objective-C verwenden, wird der Code unten helfen.

Beispielcode:

#define degreeToRadian(x) (M_PI * x/180.0) 
#define radianToDegree(x) (180.0 * x/M_PI) 

- (void)rotateVideoPlayerWithDegree:(CGFloat)degree { 
    [_playerLayer setAffineTransform:CGAffineTransformMakeRotation(degreeToRadian(degree))]; 
} 
3

Hooni Antwort in Swift 3:

let affineTransform = CGAffineTransform(rotationAngle: degreeToRadian(90)) 
avPlayerLayer.setAffineTransform(affineTransform) 

func degreeToRadian(_ x: CGFloat) -> CGFloat { 
    return .pi * x/180.0 
}