Silverlight 4 中的WebCam支援

在剛推出的Silverlight 4 beta版中,終於支援了大家期待已久的WebCam功能,底下是測試頁面:
[測試]
但請注意,測試前需先安裝SL4 Developer runtimes: Windows然後才能執行,Webcam是建立網路服務應用程時相當需要的功能。

整個程式的設計方式並不複雜,主要的程式碼片段如下:
        private void Button1_Click(object sender, RoutedEventArgs e)
{
//判斷目前啟動狀態
if (!CaptureDeviceConfiguration.AllowedDeviceAccess)
{
//透過RequestDeviceAccess要求使用者允許使用WebCam(這時畫面上會跳出Yes/No詢問視窗)
if (!CaptureDeviceConfiguration.RequestDeviceAccess())
{
MessageBox.Show("can't access device.");
return;
}
}

//建立CaptureSource
CaptureSource CaptureSource = new CaptureSource();
//建立VideoBrush
VideoBrush vb = new VideoBrush();
Grid1.Background = vb;
//將VideoBrush的Source設為CaptureSource
vb.SetSource(CaptureSource);
//start web cam
CaptureSource.Start();
Button1.Visibility = System.Windows.Visibility.Collapsed;
}

你會發現我們可以透過CaptureSource這個物件來抓取WebCam資料(其實除了WebCam還可以抓取聲音),然後把CaptureSource設為VideoBrush,並將CaptureSource設為Grid的Bbackground即可。

留言

余老爹寫道…
請問一下那wpf是否同樣可以讀取webcam呢?
David寫道…
WPF有完整的.NET Framework支援,可以做任何事情 ^_^
匿名表示…
Silverlight4中的webcam影像可以疊一層overlay嗎?
匿名表示…
Davaid老師您好

我想請問SilverLight有沒有辦法做到類似Google Map街景服務360度觀看
David寫道…
sure, 凡事都可行, 但不都很容易... :)
匿名表示…
感謝董老師回答,希望董老師的書繼續保持著為生手著想的寫法,小弟我去看
"奚"、"章"二位老師的寫法,不能說不好,只是跳過太多步驟,生手往往就卡在這種"簡單到應該不用寫吧"的地方
Vinix寫道…
請問Silverlight 4有支援將擷取的影片儲存至client端嗎?
匿名表示…
想請教 如何把Silverlight 4 webcam跟asp網頁做結合呢???
David寫道…
To Vinix,

請參考我在VS2010上市發表會的範例,有展示這個部分。
http://codestorage.ria101.com.tw/CodeStorageRIAUser.html?BookUid=5

to 匿名,
ASP.NET和ASP其實完全一樣的,只需要將Silverlight透過標記加入你的ASP頁面即可。
DUCK寫道…
謝謝 David回應
想請教說 現在如果我想寫一個
像測試版的webcam 一樣透過一個按钮來開啟
也是照上面的程式碼就可以嗎?
現在開啟測試網頁 就說要用正式版?
想請問正式版是在哪邊載呢?
DUCK寫道…
發現正式版不能在這範例上面使用
移除後安裝後就ok了
請教David
上面的程式碼
要配合什麼元件才能使用呢??
DUCK寫道…
David老師
請教一下..如果是要把視訊鏡頭是在sever端顯示 像是遠端監視器那樣
要修改哪部份呢?
因為現在測試過後 按下都是自己電腦本身的鏡頭 不會在遠端那邊!
不清楚是要改什麼指令才能達到我要的成果...
David表示…
to Duck,

Silverligt是Run在用戶端瀏覽器上的,所以當然是抓取到用戶端的WebCam,如果你要抓取伺服器端的webCam, 再把資料傳給用戶端的Silverlight App, 那應該在伺服器端寫一個抓取WebCam的WinForm App(或Services),然後透過Web/WCF Services建立傳送影像的Method, 再由用戶端的SL應用程式呼叫即可。
DUCK寫道…
謝 David老師回應
但小弟對寫程式了解的不多...不知道是否有相關測試的範例可以參考??
另外請教一個問題!asp頁面在執行電腦裡的exe檔案時,有方法可以像框架固定位置嗎??
因為呼叫出來之後 都是顯示在螢幕上 可以拉動的...

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

精彩(且驚人)的Semantic Kernel入門範例

使用Semantic Kernel 建立自然語言請假系統

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...