2016-08-03 26 views
7

Chcę obrócić powtórkę wideo za pomocą AVPlayer. Czy istnieje sposób, aby obrócić go o 90 stopni zgodnie z ruchem wskazówek zegara?
Oto niektóre kodu:Jak zmienić orientację wideo AVPlayera?

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

Ten działa:

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

spojrzenie na tej http://stackoverflow.com/questions/13243847/avfoundation-avplayer-rotation –

+0

to cel c i absolutnie nie mam z tym żadnego doświadczenia – mafioso

Odpowiedz

2

Jeśli używasz Objective-C, kod poniżej pomoże.

Przykładowy kod:

#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 odpowiedź w Swift 3:

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

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