我测试HTML5的视频功能。 随着指令userMedia
,我能我的相机通过切换上我的MacBook navigator.getUserMedia()
通过适配器实际上,使其跨浏览器-至少是那些谁支持它)。
但是,当我改变我的$route
,我不认为自己了(华友世纪),但相机并没有关闭(绿色指示灯一直亮着)。 只有刷新页面重置一切(这是正常的)。
我希望看在改变$location.path()
会做的伎俩:
link: function(scope, elm, attrs, ctrl) {
...
var path = $location.path();
scope.$watch(function() {
return $location.path();
}, function(value) {
if (value && value !== path) {
$log.info('Location changed, switching off camera');
webRTCAdapter.detachMediaStream(elm[0]);
}
}, true);
}
detachMediaStream(铬):
webRTCAdapter.detachMediaStream = function(element) {
console.log("Detaching media stream");
element.pause();
element.src = '';
element.parentNode.removeChild(element);
};
HTML:
<video id="localVideo" width="100%" autoplay="autoplay" user-media="user-media"></video>
detachMediaStream
被执行(我看到了必要的日志console.log
),但相机并没有关掉。
不知道如何解决这个问题? 我应该以某种方式卸载元件?