Testuję możliwości wideo HTML5. Dzięki dyrektywie userMedia
mogę włączyć mój aparat na moim MacBooku przez navigator.getUserMedia()
(w rzeczywistości za pomocą adaptera, aby umożliwić przeglądarkę - przynajmniej tym, którzy ją obsługują).Kamera HTML5 nie wyłącza się po zmianie trasy w AngularJs
Ale kiedy zmieniam moją $route
, nie widzę już siebie (hurra), ale kamera się nie wyłącza (zielone światło pozostaje włączone). Tylko odświeżenie strony powoduje zresetowanie wszystkiego (co jest normalne).
miałem nadzieję, że obserwując zmiany $location.path()
by rade:
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 (chrom):
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
zostaje wykonana (widzę potrzebne logi w console.log
), ale aparat się nie wyłącza.
Każdy pomysł, jak rozwiązać ten problem? Czy powinienem jakoś wyładować element?
Nie działa dla mnie. Ten kod działa całkiem nieźle w Operze. Aby wyłączyć diodę LED aparatu muszę ponownie uruchomić okno Chrome (gdy dioda LED jest włączona kamera internetowa nie jest dostępna dla innych aplikacji). –
Opracowano dla mnie w Chrome w wersji 29.0.1547.76 m – Spencer
To faktycznie pomogło mi w pomyślnym usunięciu elementu wideo html5 w zakresie niszczenia zakresu! Dzięki! – chmanie