Javascript 如何播放使用Ajax下载的媒体文件?
我希望能够下载媒体文件并使用Ajax播放它们。我的方法(如下)适用于图像,但由于某些原因,视频文件(AVI)无法播放Javascript 如何播放使用Ajax下载的媒体文件?,javascript,html,ajax,Javascript,Html,Ajax,我希望能够下载媒体文件并使用Ajax播放它们。我的方法(如下)适用于图像,但由于某些原因,视频文件(AVI)无法播放 var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } x
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (type == 'Image') {
document.getElementById("image_holder").src = "data:image/png;base64," + xmlhttp.responseText;
} else {
document.getElementById("video_holder").src = "data:video/avi;base64," + xmlhttp.responseText;
}
}
};
xmlhttp.open("GET", server_url + '/get_file.php);
xmlhttp.send(null);
HTML:
我会更改你的if-else语句,这样你就可以对视频类型执行一个else-if,然后在你的else中放一条消息告诉你它是否到达了那里。任何可能触发视频源并导致错误的东西都不会将视频源标记的src设置为文件的url,而足以异步下载它(而不是设置数据:video/avi;base64,+responseText)?@JonasGrumann-谢谢。但是,我将视频/图像文件存储在数据库中,并根据请求返回其内容。get_file.php做什么?从数据库中获取avi的base64编码内容并返回它。用代码更新了我的帖子。
<video id="outer_video_holder">
<source id="video_holder" src="" type="video/avi">
</video>
$sql = "SELECT * FROM file WHERE id=$file_id";
$result = $conn->query($sql);
header("Content-Type: video/avi");
if ($row = $result->fetch_assoc()) {
echo $row['content'];
}