Google에서이 문제와 관련하여 여러 사이트를 찾았으며 이에 대한 몇 가지 질문을 발견했습니다. 이는 분명히 답변되었지만 지난 1 ~ 2 주 동안 그냥 전혀 작동하지 않는 것 같아서, 나는 이것을 다시보고 싶었다.HTML5 동영상 - 여러 소스 변경
저는 몇 개의 캔버스 태그 (cv1-3)에서 사용되는 여러 비디오 태그 (vd1-3)를 사용하는 데모 작업을하고 있습니다.
<video id="vd1" width="480" preload>
<source src="jerryclips/Bild01.webm" type="video/webm" id="vd1webm">
<source src="jerryclips/Bild01.mp4" type="video/mp4" id="vd1mp4">
</video>
<canvas id="cv1" width="160" height="270"></canvas>
하나의 비디오를 사용하는 작업 버전이 있습니다. 이제 내 비디오 태그에서 재생중인 클립과 캔버스 태그에서 재생중인 클립을 동적으로 변경할 수 있기를 바랍니다. 하나의 소스 만 바꾸면, 그것이 "vd1.src = '...'"라는 것을 기억하는 한 작동했지만 적어도 두 개의 비디오 파일을 갖고 싶습니다. 자, 여기에서 볼 수 있듯이 id는 소스를 사용하여 (stackoverflow에서 대답 한 질문에서 제안한 바와 같이) 시도했지만 그 작업을 수행 할 수 없었습니다.
우리는 여기에서이 코드 약간의 모든 소스를 얻을 수 있었다 :var x = document.getElementById("vd1");
var items = x.getElementsByTagName("source");
for(var i= 0; i < items.length; i++){
alert(items[i].getAttribute('src'));
}
}, false);
그러나 나는 또한 내 소스를 변경하기 위해 그것을 사용하지 못했습니다. "items [i] .src = ..."를 사용하거나 setAttribute를 사용할 수 있다고 생각했지만 작동시킬 수는 없습니다.
나는 아직도이 모든 것에 익숙하지 않기 때문에 매우 간단한 것을 놓치고있을 것입니다 ... 누군가가 아이디어를 갖고 나를 방향으로 가르켜 줄 수 있다면 정말 고맙겠습니다.
는 업데이트 : - 특정 브라우저에만처럼 여러 소스를 업데이트 할 필요가 없습니다 은 결국 우리는 아주 간단하고 난 당신이 일을과 복잡함 있다고 생각
var videoPlaying = vd1.currentSrc;
var ext = videoPlaying.substr(videoPlaying.lastIndexOf("."));
vd1.src = "jerryclips/Bild02"+ext;
좋은 프로그래머가되는 한 가지 측면은 단순화 할 수 있다고 가정합니다. 결국 내가하려는 것은 결국 여러 개의 비디오 배열을 가지고 사용자 입력에 따라 또는 무작위로 재생하는 것입니다. 방금 형식을 찾으려면 하위 문자열을 사용하고 currentrc가 제공 한 문자열의 마지막 4 글자를 물어 보는 것이 효율적입니까? 그래서 sstring (...) = ".webm"또는 s.substring (...) = ".ogv" – chuls
@chuls 나는 비디오 파일 이름을 관리하고 있다고 가정하고 있었다. 일관되게 그 이름을 붙이면 효과가 있습니다. 각 비디오 유형에 대해 둘 이상의 파일 확장명을 일치시켜야하는 경우 대신 정규 표현식을 사용하십시오. – robertc
이미 비디오가 재생 중이지만 현재 비디오가 재생되지 않고 소스를 전환하려는 경우 어떻게됩니까? – Steph