5

我正在尝试使用 FileReader.readAsBinaryString(Blob|File) 将视频文件的内容作为二进制字符串读取,如示例http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc所示-阅读文件,然后存储和播放视频。

我尝试使用下面的(带有 webm 视频文件),但得到“不支持视频格式或 MIME 类型”。

function readBlob (file, startByte, endByte, callback) {
                    console.log('readBlob():', file, startByte, endByte);

                    var reader = new FileReader();
                    reader.onloadend = function (evt) {
                        if (evt.target.readyState == FileReader.DONE) {
                            callback(evt.target.result);
                            var player = document.getElementById('player');
                            player.src = "data:video/webm;base64,"+evt.target.result;
                            player.load();
                            player.play();
                        }
                    }
                    var blob = file.slice(startByte, endByte);
                    reader.readAsBinaryString(blob);
                }

有谁知道是否可以将视频文件(正在使用的浏览器支持的文件)作为二进制字符串读取并在浏览器 HTML5 视频播放器中播放?

TIA

4

2 回答 2

9

您的问题可能与player.src

player.src = "data:video/webm;base64,"+evt.target.result;

它期望数据在 base64 中,但你给它一个二进制字符串。

尝试使用btoa将其编码为 base64

player.src = "data:video/webm;base64,"+btoa(evt.target.result);
于 2013-04-27T10:50:32.573 回答
3

怎么样FileReader.readAsDataURL(Blob|File)
它也在您的 html5rocks-link 中进行了解释。

于 2013-06-16T07:59:44.233 回答