uczyłem się trochę javascript
, aby wybrać plik i używać go do tworzenia objectUrl która może być ustawiona jako src
o html5 video
.I ja to wypróbowanie w chrom wersji 18.0 .1025.162 na ubuntu lucid
i użycie lokalnego pliku html z plikiem javascript i plikami multimedialnymi w tym samym folderze.javascript window.URL jest niezdefiniowana funkcja
Mogę wybrać plik wideo za pomocą elementu wejściowego i po kliknięciu na play link
, wykonywana jest funkcja javascript playVideo().
<video id="vid" name='myvid' width="640" height="360" controls="controls">
<source src="test.webm" type="video/webm" />
</video>
<br><a href="#" id="playlnk">Play </a> </li>
<br><input type="file" name="fileselect" id="fselect"> </input>
javascript plik jest
$(document).ready(function(){
player=$('#vid').get(0);
$('#playlink').click(function(){playVideo(player);});
});
function setVideoSrc(player,file){
console.log('winurl='+window.URL);
var fileURL = window.URL.createObjectURL(file);
player.src=fileURL;
player.load();
return;
}
function playVideo(player) {
var file=document.getElementById('fselect').files[0];
console.log('you chose:'+file);
if (file==undefined){
console.log('no file chosen');
}else{
console.log('file='+file);
setVideoSrc(player,file);
}
}
Kiedy nie wybrać dowolny plik i kliknij na PlayLink, sztuki wideo i konsola domyślny dziennik mówi no file chosen
-as oczekiwane.
Błąd występuje, gdy wybieram plik wideo, a następnie kliknę link odtwarzania. Następnie metoda wywołuje , w której dziennik konsoli mówi: window.URL' is
undefined`
Czy to możliwe? Czy ktoś może mi pomóc to poprawić? Oto wynik dziennika konsola
you chose:[object File] //from playVideo() function
file=[object File] //from playVideo() function
winurl=undefined //setVideoSrc() function
Uncaught TypeError: Cannot call method 'createObjectURL' of undefined
[window.URL] (https : //developer.mozilla.org/en/DOM/window.URL) jest specyficzne dla Gecko. Z której przeglądarki korzystasz? –
Używam .. Chrom, czy istnieje niezależny od przeglądarki sposób, aby to zrobić? – damon
Według mojej wiedzy, nie ma (IE i Opera nie wydają się wspierać w ogóle). Chrome ma jednak odpowiednik ('window.webkitURL') [zgodnie z MDN] (https://developer.mozilla.org/en/DOM/window.URL.createObjectURL). –