1. 程式人生 > >Qt for ios 開啟相機(新增許可權)

Qt for ios 開啟相機(新增許可權)

前言

我們都知道,Qt Quick開發移動端程式時,相機開發可以通過Camera+VideoOutput來實現預覽,可用於開發 Android,也可以用於開發 IOS,這確實是很方便的,但是由於系統許可權的限制,需要手動開啟平臺相關的許可權。否則將會無法使用該功能。

正文

我們先來看看Qt 自帶的示例 演示如何開啟攝像頭功能並預覽:

 Item {
      width: 640
      height: 360

      Camera {
          id: camera

          imageProcessing.whiteBalanceMode: CameraImageProcessing.WhiteBalanceFlash

          exposure {
              exposureCompensation: -1.0
              exposureMode: Camera.ExposurePortrait
          }

          flash.mode: Camera.FlashRedEyeReduction

          imageCapture {
              onImageCaptured: {
                  photoPreview.source = preview  // Show the preview in an Image
              }
          }
      }

      VideoOutput {
          source: camera
          anchors.fill: parent
          focus : visible // to receive focus and capture key events when visible
      }

      Image {
          id: photoPreview
      }
  }

ios 新增相機許可權

我們在之前的文章中介紹瞭如何將 Qt 程式拿到 xcode 中進行編譯,文章在這裡,在通過命令列生成 xcode 工程檔案的時候會生成一個plist 檔案,那麼,根據那篇文章的介紹,我們在 xcode 中開啟 Qt 工程,然後 點選工程名,可以進行屬性設定,找到info 一欄,許可權就是在 info 中進行新增的,這裡的 info 屬性就是配置 info.plist檔案,如圖:

然後將滑鼠移動到左側任意一個 item,會出現一個+號,點選加號即可新增一個屬性欄:

點選加號新增 item,然後通過在列表顯示中向下滑動並找到 Privacy - Camera Usage Descrip… 即可,如下圖:

接下來右側屬性欄,雙擊並修改屬性介紹,如下圖:

填寫這個 value 值的作用就是告訴使用者呼叫攝像頭的用途是什麼,第一次在執行該程式的時候,呼叫攝像頭 系統會自動彈出一個對話方塊, 內容就會顯示呼叫攝像頭的原因。

OK,開啟該許可權後就可以正常呼叫攝像頭了。
此外,關於 IOS 的一些常用許可權,可以順便了解一下,也是通過同樣的方式進行開啟的:
相機許可權:Privacy - Camera Usage Description 允許此許可權才能使用相機功,這樣才能錄製視訊,並且想要儲存圖片。
相簿許可權:Privacy - Photo Library Usage Description 允許此許可權才能使用系統相簿。
麥克風許可權:Privacy - Microphone Usage Description 獲取麥克風許可權不然會崩,只有允許此許可權才能錄音。

參考文章:https://www.jianshu.com/p/84df2ca84ade