このSO投稿を見つけましたが、古くなっています:HTML5WebページでiPadからローカルビデオを再生します
iOS 6では、ファイルをアップロードするためにカメラロールにアクセスできるようになりました(たとえば、iPadカメラからキャプチャされた.movファイル)。誰にクレジットを与えるかはわかりませんが、入力フィールドを使用してローカルファイルを取得し、それをビデオ要素にロードして再生するjsFiddleを見つけました。これは.movファイルのデスクトップacceptで機能しますが、accept属性から「video / *」を削除すると、入力ファイルでローカルから.movを選択できるようになり、JSでfile.typeを「video/mp4」に強制するとビデオ要素で再生する.mov。
上記で参照されているjsFiddleを参照してください:http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/presentation/
ただし、これがモバイルサファリで機能する場合、ファイル入力フィールドにプレビューサムネイルとファイル名が表示されていても、ファイルの読み込みに失敗します。「?dl = 1」をblob:urlに連結するページへのリンクを追加しましたが、それをクリックすると、ホストされている.movへのリンクがQuickTimeで再生されても、mSafariが「無効なアドレス」と表示します。最終的には、カメラロールからビデオを選択し、それをhtmlビデオプレーヤーで再生し、(理想的には)後でアクセスできるようにそのファイルのソースパスをデータベースに保存できるようにしたいと考えています。私はどの部分が欠けていますか?
ここで動作しているjsFiddleの編集済みバージョンを参照してください:http: //lt.umn.edu/email/
JS:
playSelectedFile = function playSelectedFileInit(event) {
var file = this.files[0];
//var type = file.type;
var type = "video/mp4";
var videoNode = document.querySelector('video');
var canPlay = videoNode.canPlayType(type);
canPlay = (canPlay === '' ? 'no' : canPlay);
var message = 'Can play type "' + type + '": ' + canPlay;
var isError = canPlay === 'no';
//displayMessage(message, isError);
if (isError) {
return;
}
var fileURL = URL.createObjectURL(file);
var tempURL = fileURL+'?dl=1';
var tempText = '<a href="'+tempURL+'?dl=1">'+tempURL+'?dl=1</a>';
displayMessage(tempText, isError);
videoNode.src = fileURL;
}