2016-08-03 85 views
7

我想使用AVPlayer旋轉視頻的重播。有沒有辦法將其順時針旋轉90度?
下面是一些代碼:如何更改AVPlayer的視頻方向?

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

這一個工程:

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

看看這個http://stackoverflow.com/questions/13243847/avfoundation-avplayer-rotation –

+0

這是目標C我絕對沒有經驗 – mafioso

回答

2

如果您正在使用的Objective-C,下面的代碼會有所幫助。

示例代碼:

#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答案斯威夫特3:

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

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