2015-04-04 59 views
1

當我使用背景相機(相機朝向你)使用avfoundation錄製視頻時,它會水平鏡像視頻,我不知道爲什麼。我怎樣才能解決這個問題?真的需要幫助!Objective-C如何修復背部相機(相機面對你)鏡像視頻?

+2

你確定你不是指前置攝像頭嗎?這是面向用戶的人,因爲它在設備的* front *上。 – duskwuff 2015-04-04 20:21:10

+0

是啊我的意思是前置攝像頭 – Adp 2015-04-04 20:57:11

回答

2

它必須是前置攝像頭,而不是後置攝像頭。您可以在播放時使用您的AVPlayer中的playerLayer的CALayer屬性對其進行鏡像。只需使用CATransform3DMakeScale水平翻轉playerLayer即可。

CATransform3DMakeScale(-1, 1, 1) 

UPDATE

CATransform3D tranform = CATransform3DIdentity; 
tranform = CATransform3DScale(tranform, -1, 1, 1); 
playerLayer.transform = tranform; 

如果你要旋轉的原始視頻本身,那麼你得到了根據使用AVMutableVideoCompositionLayerInstruction您需要使用AVMutableComposition和應用說明。您需要逐幀旋轉視頻並使用AVMutableComposition進行組合。

它有點複雜,但你可以看看代碼here並使用它。代碼是關於將視頻旋轉到任何角度。使用它在你的情況下旋轉-180度。

+0

它沒有工作。我沒有playerLayer.transform = CATransform3dMakeScale(-1,1,1); ...但它沒有做任何事 – Adp 2015-04-19 21:55:19

+0

@Adp然後確保你的playerLayer被正確初始化,並使用我編輯的答案中的代碼進行轉換。 – blancos 2015-04-20 06:08:00

+0

我怎麼知道它是否正確初始化因爲我很確定它是 – Adp 2015-04-20 16:46:34