2014-12-02 8 views
1

Мне нужно воспроизвести файл локального видео в CANVAS. CANVAS находится внутри div, который имеет максимальную ширину и высоту. Если я попытаюсь изменить размер видео и CANVAS на этот размер, вместо изменения размера видео обрезается. Как изменить размер?Изменение размера и размера холста до размера

HTML

<div> 
<video id="video" controls> 
<source id="videoSource" type="video/ogg"> 
</video> 
</div>  

JS

if (videoInfo.height > 480)  
    { 
     var AR = videoInfo.width/videoInfo.height; 
     videoInfo.height = 480; 
     videoInfo.width = 480*AR; 
    } 

if (videoInfo.whidth > 848) 
{ 
    var AR = videoInfo.width/videoInfo.height; 
    videoInfo.width = 848; 
    videoInfo.height = 848/AR; 
} 

video.setAttribute('width', videoInfo.width); 
video.setAttribute('height', videoInfo.height + VIDEO_HEIGHT_SHIFT); 

displayedCanvas.setAttribute('width', videoInfo.width); 
displayedCanvas.setAttribute('height', videoInfo.height); 
+0

У вас есть опечатка на> 848 линии 'whidth' должен быть' width'. Dunno, если это произошло, когда вы набрали вопрос или если это фактический код. – K3N

+0

Упс, да, правда, спасибо. В любом случае, это не проблема –

+0

К сожалению, здесь слишком мало кода (что такое видеоинформация, как рисовать кадр, где находится элемент холста, как создается холст ..). Не могли бы вы создать скрипку (или встроенную демонстрацию), показывающую ваш сценарий? (Я знаю, что ссылка на видео может быть немного сложной, но есть видео с открытым исходным кодом, которые вы можете использовать вместо своего фактического видео) – K3N

ответ

0

Я уже решил! Вы должны использовать новые размеры видео при рисовании его на холсте, как это:

ctx.drawImage(video, 0, 0, videoInfo.width, videoInfo.height);  
Смежные вопросы