2015-04-20 6 views
5

wiem, że mogę określić rozdzielczość strumienia video w stanie inicjalizacji:WebRTC - rozdzielczość wideo zmiana w środku komunikacji

var video_constraints = { 
    mandatory: { 
    maxHeight: 480, 
    maxWidth: 640 
    }, 
    optional: [] 
}; 

navigator.getUserMedia({ 
    audio: false, 
    video: video_constraints 
}, onsuccess); 

Zastanawiam się czy jest jakiś sposób mogę zmienić rozdzielczość strumienia wideo w środku komunikacji, tj. po inicjalizacji?

+0

Nie ma to wpływu na twoje pytanie, ale zauważam, że ograniczenia w twoim przykładzie są raczej specyficzne dla Chrome niż [standardowe] (http://stackoverflow.com/questions/28282385/webrtc-firefox-constraints/28911694#28911694). – jib

Odpowiedz

3

W specyfikacji jest MediaStreamTrack.applyConstraints(), ale nie wygląda na to, że jest obsługiwane w przeglądarkach do tej pory, a może zostało usunięte? Dla mnie wygląda na to, że obecnie nie jest to możliwe. Zobacz także this question at SO.

Jedyne, co można zmienić, to zgodnie z powyższym pytaniem. Jedną z możliwości jest utworzenie nowego strumienia o wyższej rozdzielczości, dodanie tego strumienia i zastąpienie strumienia po drugiej stronie. Następnie możesz zatrzymać/odłączyć strumień.

+0

Jeśli chodzi o obsługę przeglądarki, prawdopodobnie należy wspomnieć, że dodawanie/usuwanie/zastępowanie strumieni również nie zapewnia dobrej obsługi przeglądarki. – xdumaine

+0

Cóż, można po prostu użyć addStream/removeStream na 'RtcPeerConnection' zastępując nie jest obsługiwana. – Robert

+0

addStream/removeStream nie są obsługiwane w Firefoxie, a błąd w addStream w Chrome jest błędny. – xdumaine