2012-04-04 10 views
8

Może to proste pytanie, ale to naprawdę doprowadza mnie do szału. Chcę tylko ustawić wysokość i szerokość wideo HTML5.Ustaw Wysokość wideo w HTML5

Używam tego kodu:

<video controls="controls" width="1000" id="video"> 
      <source src="sintel-trailer.ogv" type='video/ogg; codecs="theora, vorbis"'> 
      <source src="sintel-trailer.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
    </video> 

Wynik: enter image description here

Jeśli dodać atrybut wysokość

<video controls="controls" width="1000" height="300" id="video"> 
       <source src="sintel-trailer.ogv" type='video/ogg; codecs="theora, vorbis"'> 
       <source src="sintel-trailer.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
</video> 

Wynik: enter image description here

Więc ja brakujące som tutaj?

Czy ktoś może poprawić błąd, który robię.

+0

Czy próbowałeś ustawiania wymiarów w CSS zamiast tego? Być może łatwiej będzie je ulepszyć. Można również ustawić wideo, aby dostosować go do rozmiaru rodzica (wideo {szerokość: 100%, wysokość: 100%;}) i edytować wymiary rodzica w locie. Nie testowałem tego. Tylko pomysł! – Oriol

Odpowiedz

12

Nie można zmienić współczynnika proporcji w tagu <video>.

Można jednak odczytać zawartość wideo i zapisać ją w elemencie <canvas>.

Na przykład:

<canvas id="canvas" height="768" width="1024"></canvas> 

I JS:

function updateVideo() { 
    var canvas = document.getElementById('canvas'); 
    var ctx = canvas.getContext('2d'); 
    var myVideo = document.getElementById('video'); 
    ctx.drawImage(myVideo, 0, 0, 640, 480); 
} 
setInterval (updateVideo, 24); 
-3

Można użyć CSS, aby obejść.

#video { 
    width:1000px; 
    height:auto; 
} 
+0

@ User1193749-Próbowałem, ale to jest to samo. – coder

8

Oto prosta sztuczka CSS, nie trzeba dodawać żadnego kodu JavaScript ani jQuery. Użyj właściwości CSS na etykiecie wideo.

HTML

<video controls="controls" id="video"> 
<source src="sintel-trailer.ogv" type='video/ogg; codecs="theora, vorbis"'> 
<source src="sintel-trailer.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
</video> 

CSS

#video{ 
    object-fit: initial; 
    width: 400px; 
    height: 300px; 
} 

See Fiddle

+1

Nigdy wcześniej nie słyszałem o tej nieruchomości, cierpiałem przez dziwnie ustawione wideo przez wiele godzin, zanim znalazłem to, dziękuję –

+0

pracując dla mnie, +1, użyłem objest-fit: okładka, ale to zadziałało. –