2014-05-01 35 views
1

我正在開發使用HTML和Javascript的桌面Windows 8.1應用程序。 我有一個視頻採集卡,我想在我的應用程序中實時查看視頻。 在互聯網上搜索我找到了一些捕獲Windows 8應用程序的視頻的例子和教程,但他們都與網絡攝像頭,我想知道如果這應該適用於像我的捕獲任何「捕獲設備」卡。Windows 8桌面應用(HTML + javascript)的視頻截圖。不是來自攝像頭

我跟着這個MSDN教程沒有成功。

http://msdn.microsoft.com/en-us/library/windows/apps/hh452791.aspx

編輯(添加一些更多的信息):

如果按照教程,捕獲設備的蒙山代碼波紋管的檢測是確定的,它能夠正確檢測我的採集卡。

var deviceInfo = Windows.Devices.Enumeration.DeviceInformation; 
    deviceInfo.findAllAsync(Windows.Devices.Enumeration.DeviceClass.videoCapture).then(function (devices) { 

     // Add the devices to deviceList 

     if (devices.length > 0) { 

      for (var i = 0; i < devices.length; i++) { 
       deviceList.push(devices[i]);    
      } 

      initCaptureSettings(); 
      initMediaCapture(); 
      document.getElementById("message").innerHTML = "Initialization complete."; 

     } else { 
      document.getElementById("error").innerHTML("No video device is found "); 
     } 
    }, errorHandler); 

但後來,它拋出一個「拒絕訪問」異常的「oMediaCapture.initializeAsync(captureInitSettings)」在下面的代碼段:

// Create and initialze the MediaCapture object. 
function initMediaCapture() { 
    oMediaCapture = null; 
    oMediaCapture = new Windows.Media.Capture.MediaCapture(); 
    oMediaCapture.initializeAsync(captureInitSettings).then (function (result) { 
     createProfile(); 
    }, errorHandler); 
} 

我認爲這可能是因爲一些對捕獲設備的訪問權限類型???? 有什麼幫助嗎?

在此先感謝!

+0

好吧,我已經解決了它...這只是打開在應用程序清單上使用網絡攝像頭和麥克風...某些類型的引導必須詢問用戶有關使用網絡攝像頭和麥克風的權限時它並沒有真正使用... – MorgoZ

回答

2

如果你只關心視頻和不想使用音頻,只需確保設置傳遞給InitializeAsync()正確指定StreamingCaptureMode:

  mediaCapture = new MediaCapture(); 

      MediaCaptureInitializationSettings initSettings = new MediaCaptureInitializationSettings(); 
      initSettings.VideoDeviceId = Webcam.Id; 
      initSettings.StreamingCaptureMode = StreamingCaptureMode.Video; // <---- 

      await mediaCapture.InitializeAsync(initSettings); 

榮譽給Slimacik。

相關問題