轉(zhuǎn)自:http://dev.arinchina.com/177wz/ar9641/9641/1
啟用相機(jī)攝影攝像能力
在使用攝像頭時(shí),我們必須啟用WebCam能力。
1.? ???在Unity中,打開Player settings,(通過(guò)導(dǎo)航,到“編輯>項(xiàng)目設(shè)置>播放器”頁(yè)面訪問(wèn)播放器設(shè)置)
2.? ???展開Windows Store標(biāo)簽頁(yè)
3.? ???在"Publishing Settings > Capabilities"部分中,勾選WebCam能力
在同一時(shí)刻中只能執(zhí)行一次相機(jī)操作。為了識(shí)別當(dāng)前相機(jī)環(huán)境處于哪種模式下(拍照還是視頻或無(wú)場(chǎng)景),你可以通過(guò)UnityEngine.VR.WSA.WebCam.Mode來(lái)進(jìn)行檢查。
照片捕獲
命名空間:UnityEngine.VR.WSA.WebCam
類型:PhotoCapture
PhotoCapture類型允許使用相機(jī)拍攝靜態(tài)照片。使用相機(jī)拍攝的正常模式如下:
1.??創(chuàng)建PhotoCapture對(duì)象
2.??通過(guò)使用想要的設(shè)置來(lái)創(chuàng)建一個(gè)CameraParameters對(duì)象
3.??調(diào)用StartPhotoModeAsync(),開始拍照模式
4.??選取想要的照片拍攝
·? ?? ???(可選項(xiàng))進(jìn)一步處理圖像
5.? ?關(guān)閉拍照模式并釋放資源
使用PhotoCapture的通用設(shè)置
對(duì)于任意拍照方式,開始的前三步都如下:
創(chuàng)建PhotoCapture對(duì)象

存儲(chǔ)對(duì)象,配置拍攝參數(shù)并開始拍照模式

最后,需要使用同樣的清理代碼來(lái)關(guān)閉相機(jī)

完成這些步驟后,你可以挑選使用捕獲照片方式。
捕獲照片至文件
最簡(jiǎn)單的操作是直接將照片捕獲到文件。照片可以被存儲(chǔ)為PNG或JPG格式。
如果我們成功開始了拍照模式,就需要拍照并將照片存儲(chǔ)到磁盤上。

完成捕獲照片到磁盤的操作后,我們需要退出拍照模式并清理對(duì)象

捕獲文件至Texture2D對(duì)象
我們可以把捕獲數(shù)據(jù)保存為Texture2D對(duì)象,做法和保存到磁盤類似。步驟如下:
在OnPhotoModeStarted,捕獲一幀圖像到內(nèi)存中。

我們需要把得到的結(jié)果賦給Texture2D對(duì)象,然后清理代碼

捕獲照片并與原始數(shù)據(jù)交互
為了在內(nèi)存中操作圖像原始數(shù)據(jù),需要的步驟和捕獲圖片到Texture2D類似,不同之處在于,OnCapturedPhotoToMemory()方法里可以獲得圖像原始數(shù)據(jù)并操作它們。
在下面的例子中,我們會(huì)創(chuàng)建一個(gè)List用來(lái)進(jìn)一步處理或者直接通過(guò)SetPixels()方法來(lái)應(yīng)用于Texture2D對(duì)象。

捕獲視頻
命名空間:UnityEngine.VR.WSA.WebCam
類型:VideoCapture
捕獲視頻的用法和捕獲照片相似,不同之處在于你必須指定一個(gè)幀率(FPS),并且直接存儲(chǔ)到磁盤上的視頻必須是MP4格式。
下面是具體步驟:
1.? ? 創(chuàng)建VideoCapture對(duì)象
2.? ? 使用我們想要的設(shè)置來(lái)創(chuàng)建一個(gè)CameraParameters對(duì)象
3.? ? 調(diào)用 StartVideoModeAsync()方法開始視頻捕獲模式
4.? ? 開始錄制視頻
5.? ? 停止錄制視頻
6.? ? 停止視頻捕獲模式并釋放相機(jī)資源
開始創(chuàng)建VideoCapture對(duì)象VideoCapture m_VideoCapture = null

設(shè)置參數(shù)

配置完成VideoCapture對(duì)象,開始錄制視頻

在開始錄制后,你需要通過(guò)更新UI或者行為來(lái)確保可以停止視頻捕獲。在這里我們只輸出log。

最后我們需要停止視頻捕獲,可以通過(guò)定時(shí)器或者其他輸入方式來(lái)實(shí)現(xiàn)。

一旦停止視頻捕獲,需要及時(shí)退出視頻捕獲模式并釋放相機(jī)資源。

故障問(wèn)題解決
·獲取不到分辨率
·? ?? ???確保你在項(xiàng)目中啟用了WebCam能力
·? ?? ???全息圖像無(wú)論怎樣設(shè)置都不能捕獲到圖片或者視頻中
·? ?? ???未來(lái)的更新會(huì)支持捕獲全息圖像