9

srcファイルを選択し、それを使用して HTML5 のとして設定できる objectUrl を作成するために、いくつかの JavaScript を学習していましたvideo。Ubuntu Lucid の Chrome バージョン 18.0.1025.162 でこれを試し、JavaScript ファイルとメディア ファイルを同じフォルダーに含むローカル HTML ファイルを使用しています。

input 要素を使用してビデオ ファイルを選択できます。再生リンクをクリックすると、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ファイルは

$(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);
     }     
}

ファイルを選択せず​​に再生リンクをクリックすると、デフォルトのビデオが再生され、コンソール ログにはファイルが選択されていないと表示されます。

ビデオ ファイルを選択して再生リンクをクリックすると、エラーが発生します。次に、コンソール ログにundefined`と表示されるplayVideo()メソッド呼び出しsetVideoSrc()window.URL' is

なぜこれが起こるのですか?誰かがこれを修正するのを手伝ってくれますか? コンソールログ出力は次のとおりです

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 
4

3 に答える 3

9

Chrome で window.webkitURL を使用します。

これはChromeとFireFoxの両方で機能します

function setVideoSrc(player,file){
    var myURL = window.URL || window.webkitURL
    console.log('winurl='+myURL);
    var fileURL = myURL.createObjectURL(file);
    player.src=fileURL;
    player.load();
    return;
}

以下も参照してください。

于 2012-05-10T08:45:01.060 に答える
0

この方法を試してください:-

var file = document.getElementById('fselect').files[0];
if(file){
  setVideoSrc(player,file); 
}

以下の行は Chrome と Firefox で動作します:-

window.URL.createObjectURL(file);

上記のブラウザーでテストしていることを確認してください。

この情報を参照してください

于 2012-05-10T07:52:38.353 に答える
-1

やってみました

 window.location.href = "URL";

window.url の代わりに? URL はサポートされていないようです。

于 2012-05-10T07:50:18.077 に答える