我已经通过getUserMedia实现了简单的视频流,但我希望处理当我正在流传的网络摄像头断开或不可用时的情况。因此,我在传递给successCallback
函数的stream
对象上找到了oninactive
事件。并且我想在完全相同的网络摄像头/媒体设备插入时重新启动视频流。
代码示例:
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia(constrains, function successCallback(stream) {
this.video.src = URL.createObjectURL(stream);
stream.oninactive = function (error) {
//this handler runs when device becomes unavailable.
this.onStreamInactive(error, stream);
}.bind(this);
}.bind(this), function errorCallback () {});
根据上面的例子,我该如何:
- 检测最近连接的媒体设备
- 检查它是否是我正在流媒体的同一设备