我遇到的問題是,當用戶使用我們的應用程序拍攝照片時,使用AVCaptureSession
,我無法確定無論他們是以人像還是風景模式拍攝照片。我們的應用程序僅支持肖像,並且在使用手機時保持方向鎖定不變,因此我正在嘗試構建一種假設其他人可能也這樣做的解決方案。當方向鎖定打開且應用程序僅支持縱向時,如何檢測設備方向
我看着使用[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
但方向鎖打開時,沒有收到任何通知。我知道這一功能是可能的,因爲當我的手機有方向鎖定功能時,Google相冊應用和Google環聊應用中的相機可以檢測到旋轉(取消和閃光按鈕顯示的動畫)。
是我最好的選擇使用加速度計和檢測手機旋轉的角度?一箇舊的答案,Detect iPhone screen orientation,這很明顯,檢測這種方式很容易做到這一點(顯然適應使用Core Motion而不是UIAccelerometer),但我很好奇,如果有另一種方式來做到這一點。
感謝您使用CMCopyDictionaryOfAttachments,它使讀取元數據變得非常容易。使用'captureStillImageAsynchronouslyFromConnection'我仍然只能取得方向= 6.我啓用了應用程序的橫向模式,但無濟於事。我將在品牌中試用新應用程序,以確保沒有隱藏導致此問題的某處的奇怪設置。 – TheJer
假設你有'AVCaptureConnection *連接',你是否在任何地方設置connection.videoOrientation?無論我嘗試什麼,元數據都會返回6,因爲videoOrientation默認爲'AVCaptureVideoOrientationPortrait'。這導致我一直回到如何檢測旋轉以更改捕獲方向的原始問題。 – TheJer
是的,我想我記得還有一些問題。不幸的是,現在沒有時間深入研究它。但它應該是可能的,因爲默認的相機應用程序會這樣做,並且我認爲他們沒有經歷過使用自己的私有API的麻煩。 – vegather