getUserMedia () Die Videogröße in Firefox & Chrome unterscheidet sich

8

Ich benutze getUserMedia() , und wenn Sie Einschränkungen implementieren (siehe unten), funktionieren sie nur in Chrome und nicht in Mozilla. Die Größe in mozilla erscheint immer gestreckt und endet größer als die in chome.

%Vor%

Nachdem einige gelesen wurden, scheint MozGetUserMedia() keine Auflösungsbeschränkungen zu unterstützen. Gibt es eine Möglichkeit, das Video anzuzeigen, das sicherstellt, dass es sowohl in Firefox als auch in Chrome dieselbe Größe / Auflösung hat?

Danke

Bearbeiten Ich habe das Skript geändert, um Snapshots zu erstellen. Ich habe Schnappschüsse in Moz und in Chrome gespeichert - das Ergebnis ist folgendes:

(links = Chrome , rechts = Mozilla )

Dachte, das könnte das Problem klären. Es sieht wie Seitenverhältnis aus.

Bearbeiten (nimm 2)

Ja - das Seitenverhältnis für das Chrom ist 16: 9, während es für Moz sein 4: 3 ist. Wie kann ich das ändern?

    
sidewaiise 16.10.2014, 23:52
quelle

2 Antworten

12

Bearbeiten 15. April

Wie von @jib in seinem tolle Antwort ,

  

Firefox [38+] unterstützt eine Untermenge von Einschränkungen mit   getUserMedia (), aber nicht die veraltete Syntax, die Chrome und Opera sind   verwenden. Die obligatorische / optionale Syntax wurde vor einem Jahr nicht mehr unterstützt   minWidth und minHeight das Jahr davor.

Also ist die neue Syntax, die von den Spezifikationen bestätigt wird:

%Vor%

Diese Syntax verursacht jedoch einen Fehler in Chrome. Wie in den Kommentaren erwähnt, wurde ein PR zu adapter.js erstellt, einschließlich eines polyfill für ältere FF und Chrome.

Hier ist mein Versuch, nur für Chrome (aber neuere Version von FF scheint die magische und versteckte require:['width', 'height'] zu akzeptieren.

%Vor% %Vor%

Erste Antwort

Also habe ich angefangen, Ihnen das zu schreiben, bevor Sie Ihre eigene Frage beantwortet haben.

Wie in den Kommentaren erwähnt, zeichne ich jeden Frame des Videos so, dass er auf eine Leinwand in der Größe passt.

%Vor% %Vor% %Vor%

Das macht seine Arbeit, aber wie Sie festgestellt haben, sind Constraints immer noch in der Entwicklung und die einzige Möglichkeit, sie mit Firefox arbeiten zu lassen, ist die media.navigator.video.default_ in about:config jedes Browsers manuell einzustellen.

    
Kaiido 08.01.2015, 09:54
quelle
1

Ok. Lange Zeit kommt.

Ich habe festgestellt, dass der folgende Code:

%Vor%

Ist eigentlich nutzlos. Was besser funktioniert, ist einfach zu verwenden

%Vor%

Und Sie legen einfach die Größe des Videos über CSS oder Inline-HTML fest. Für meine Anwendung funktionierte das gut, da ich den Video-Content einfach auf eine Leinwand kopieren musste. Arbeitete am Ende großartig.

Zusammenfassend scheint das Problem die Beschränkungsoptionen zu sein. Bleiben Sie weg von ihnen, wenn Sie versuchen, es in mehreren Browsern funktionieren zu lassen.

Dies funktioniert möglicherweise nicht für Sie, wenn Sie eine bessere Kontrolle über Ihre Kameraauflösung benötigen. Wenn Sie die endliche Kontrolle über die Res benötigen, versuchen Sie vielleicht bedingte (dh.% Co_de%).

Betet, es wird bald eine Standardfunktion if(navigator.mozGetUserMedia){... //compatible resolutions etc ...} geben, die von allen Browsern gehandhabt wird! :)

Nur eine Referenz. Ich gab mir einen FiddleJS-Code und modifizierte ihn, um ihn in Chrome und Mozilla zu testen: Ссылка

    
sidewaiise 08.01.2015 09:46
quelle