当前位置: 首页 > 知识库问答 >
问题:

Android Chrome不通过文件系统API播放或加载视频

华烈
2023-03-14

参见http://sobek-agency.com/html5-file-api/

源代码:

<!DOCTYPE html >
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"> </script>
<script type="text/javascript">
var _fs;

var imagefilename = "st-logo.png";
var videofilename = "st-is-coming.webm";

var diskSpaceRequired = 20 * 1024 * 1024;

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;

function errorHandler(e) {
var msg = '';

switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log(msg);
}

function downloadImageAndVideo(fileEntry) {

console.log('fetch image resource');
_fs.root.getFile(imagefilename, { create: true }, function (fileEntry) {
var xhr = new XMLHttpRequest();
xhr.responseType = "blob";
xhr.open("GET", imagefilename, true);
xhr.onload = function(e) {
if (this.status == 200) {
var movieBlob = this.response;
fileEntry.createWriter(function (fileWriter) {
fileWriter.write(movieBlob);
fileWriter.onwriteend = function(e) {
var src = fileEntry.toURL();
$('body').append('<h3>Image loading through Filesystem API is working (on Android Chrome!):</h3><img height="150px" src="' + src + '" /><br/><span id="imgInfo"></span><br/>');
};
}, errorHandler);
}
};
xhr.send();
});

console.log('fetch video resource');
_fs.root.getFile(videofilename, { create: true }, function (fileEntry) {
var xhr = new XMLHttpRequest();
xhr.responseType = "blob";
xhr.open("GET", videofilename, true);
xhr.onload = function(e) {
if (this.status == 200) {
var movieBlob = this.response;
fileEntry.createWriter(function (fileWriter) {
fileWriter.write(movieBlob);
fileWriter.onwriteend = function(e) {
var src = fileEntry.toURL();
$('body').append('<h3>Video loading through Filesystem is not working (on Android Chrome!)</h3><video controls><source src="' + src + '" type="video/webm"/></video><br/><span id="videoInfo"></span><br/>');
};
}, errorHandler);
}
};
xhr.send();
});

}

//request quota and persistent storage
$(document).ready(function () {
window.webkitStorageInfo.requestQuota(
PERSISTENT,
diskSpaceRequired,
function (grantedBytes) {
window.requestFileSystem(PERSISTENT, grantedBytes, function(fs) {
_fs = fs;
downloadImageAndVideo();
}, errorHandler);

},
errorHandler
);
});

</script>
<title>foo</title>
</head>
<body>
</body>
</html>

暂时还没有答案

 类似资料:
  • 问题内容: 我有一个简单的程序,需要显示图像。我知道如何从Eclipse运行代码,也知道如何从JAR文件运行,但是我想要一个在两种情况下都可以使用的解决方案。 Eclipse项目就是这样的: 可在Eclipse中运行的代码段: 适用于JAR的文件(全部在一个JAR文件中): 为了使单个代码在两种情况下都能正常工作,我需要更改什么? 问题答案: 将文件夹放在文件夹中,Eclipse会将图像复制到目标

  • 我有一个响应站点,包含html5视频。我有一些javascript可以检查视频元素的大小是否低于某个阈值。如果是,它将移除控件,将视频播放按钮覆盖图像放置在视频元素的顶部,然后将click事件添加到保存视频元素的容器中。当点击容器时,它会将视频复制到一个模态对话框中并播放视频。 现在的困境是: webm版本没有任何问题。 modal视图的mp4版本在Safari中没有问题。 如果mp4播放到位(即

  • 我需要加载不同服务器上存在的类文件,并在类文件中执行方法。我不想使用超文本传输协议或RMI,但想应用这种方法。我正在看URLClassLoader,但没有得到任何地方。有人能给我一个从不同服务器加载类的例子吗?

  • 本文向大家介绍Python调用系统底层API播放wav文件的方法,包括了Python调用系统底层API播放wav文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python调用系统底层API播放wav文件的方法。分享给大家供大家参考,具体如下: 这里未使用其他库,只是使用 pywin32 调用系统底层 API 播放 wav 文件。 具体代码如下: 更多关于Python相关内容感兴

  • 我在我的项目中使用的是umbraco 4.11.3。我的项目在Windows 7上运行良好,并在visual studio 2012上运行。但它在Win 8中从visual studio 2012运行时并不工作! 错误是: 无法加载文件或程序集“System.Web”。Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e