HTML5:从存储的二进制字符串播放视频

HTML5: Play video from stored binary string

本文关键字:字符串 播放 视频 二进制 存储 HTML5      更新时间:2023-09-26

我正在尝试使用FileReader.readAsBinaryString(Blob| file)读取视频文件的内容,如示例http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-reading-files所示,然后存储和播放视频。

我尝试使用下面的(与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

您的问题可能是player.src

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

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

尝试使用btoa

将其编码为base64
player.src = "data:video/webm;base64,"+btoa(evt.target.result);

FileReader.readAsDataURL(Blob|File)呢?
在html5rocks-link中也有解释