2016-09-27 6 views
0

私は、イメージとビデオsrcをベース64のエンコード値に変換して暗号化しようとしていました。ランタイムイメージとビデオSRCでイメージとビデオのデータをベース64に変換する

<!DOCTYPE html> 
<html> 
<body> 

<video style="width: 640px; height: 360px;" onloadstart="" id="mediaplayer" oncontextmenu="return false;" controls preload src="" poster=""/> 

</body> 
<script src="https://code.jquery.com/jquery-3.1.1.js"></script> 
<script> 
    // To access player after its creation through jQuery use: 
    var videoSrc = 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4'; 
    var imageSrc = 'http://www.w3schools.com/images/w3html5.gif'; 
    var playerObj = $('#mediaplayer')[0]; 
    var encodedSrc = btoa(playerObj.src); 
    var decodedSrc = atob(encodedSrc); 
    var playerObjPoster = playerObj.poster; 
    console.log(decodedSrc); 
    playerObj.src = "data:video/mp4;base64,"+btoa(videoSrc); 
    //playerObj.src = videoSrc; 
    playerObj.poster = 'data:image/gif;base64,'+btoa(imageSrc); 
    //playerObj.poster = imageSrc; 
</script> 


</html> 

はとしてエンコードされた値を示しているが、どちらも画像とどちらのビデオは、Webページ上に表示されます。私は私のhtmlコードが続きhttps://www.iandevlin.com/blog/2012/09/html5/html5-media-and-data-uri

からの参照を取っていました。

どのような主張ですか?

答えて

1

このようには機能しません。ファイルのパスではなく、ファイルの実際の内容をbase64でエンコードする必要があります。あなたが実際に使用したリンクは、一例でこれを示しています

現在
function getEncodedVideoString($type, $file) { 
    return 'data:video/' . $type . ';base64,' .  base64_encode(file_get_contents($file)); 
} 

何が起こっているブラウザは実際の画像や動画データとしてデコード値(whisがURIである)を使用しようとしていることで、当然のこと失敗する。

+0

私のケースでは、javascript btoa関数によって達成される目的はありませんか? – Ankit

+0

@antik - もしあなたが実際の画像コンテンツを送ることができれば(例えば、Ajax呼び出しを行い、その関数に応答を渡すことによって)、それは:) –

関連する問題