为 node-webkit 选择默认网络摄像头

Choose default webcam for node-webkit

我有一个使用 RecordRTC 捕捉视频片段的 node-webkit 应用程序。我是 运行 Windows Surface Pro 3 上的应用程序,需要使用前置摄像头而不是后置摄像头。我知道 Chrome 中有一个设置可以更改默认网络摄像头,但是如何在 node-webkit 中配置它?

我没有测试这个的设备,但它应该可以工作。我相信移动设备会 return 'user' 或 'environment' 来确定它是正面还是背面。

var devices = function (devices) {
  for (var i = 0; i !== devices.length; ++i) {
    var camera = devices[i];
    if (camera.kind === 'video' && camera.facing === 'user') {
       createStream(camera.id);
    } else {
      console.log('No front facing camera');
    } 
  }
}

var createStream = function(id) {
  var settings = {video: {optional: {sourceId: id} }};
  navigator.webkitGetUserMedia(settings, successCallback, errorCallback);
};

MediaStreamTrack.getSources(devices);

这基本上循环遍历所有可用设备并检查它是否是视频源以及它是否面向用户。然后它将使用该设备的 ID 来创建媒体流。