設備處於肖像模式時是否可以在橫向捕獲視頻?iOS - 在設備處於肖像模式時捕捉橫向視頻
其實我需要的是在肖像但寬度>高度,我不希望用戶旋轉設備捕捉到,但我想捕捉像一個更廣泛的圖片在橫向模式下。
只是將預覽圖層框架更改爲寬(寬度>高度)當然不夠。
我試着改變預覽圖層的視頻方向,但是會旋轉圖片,那不是我想要的。
previewLayer.connection.videoOrientation = .landscapeRight
是有意義的嗎?
設備處於肖像模式時是否可以在橫向捕獲視頻?iOS - 在設備處於肖像模式時捕捉橫向視頻
其實我需要的是在肖像但寬度>高度,我不希望用戶旋轉設備捕捉到,但我想捕捉像一個更廣泛的圖片在橫向模式下。
只是將預覽圖層框架更改爲寬(寬度>高度)當然不夠。
我試着改變預覽圖層的視頻方向,但是會旋轉圖片,那不是我想要的。
previewLayer.connection.videoOrientation = .landscapeRight
是有意義的嗎?
您可以,您需要使用AVAssetWriter並設置輸出視頻的尺寸。
但是,請記住,您將降低質量。如果相機的方向是肖像,那麼你接收到的是一個720H×360W的視頻。
所以,如果你想保持高寬比,那麼你最終需要一個180H x 360W的視頻(通過裁剪輸入)。
請記住,相機看到的內容,您發送到預覽圖層的內容以及您記錄到文件的內容有所不同 - 它們都可以相互獨立(您提到了更改預覽圖層框架,請記住這與您寫出的視頻無關)。
你有沒有嘗試過設置重力&界限的previewLayer?
var bounds:CGRect = self.view.layer.bounds
previewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
previewLayer?.bounds = bounds
previewLayer?.position = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds))
沒有它不可能,因爲你必須物理旋轉相機。
您可以將輸出視頻裁剪爲任何您希望的寬高比。
但是,這會使您的垂直分辨率達到目前水平分辨率的最大值。
以及減少你的視野。
如果你還是想裁剪視頻以模擬實時這個「小風景模式」我建議你使用「GPUImageCropFilter」從庫GPUImage