这是事情,我正在使用ASP.NET,我正在使用这个特殊的SignalR库向我的客户端广播视频,但据我所知,我无法流式传输视频因为signalR是一个消息系统而且它不是为了流式传输视频,文件或类似内容。
现在我要做的是将视频拆分为Base64编码为字符串的缓冲区,然后在客户端上我尝试将其加载到视频标记源中。
在这里,我向您展示我在客户端所做的事情:
HTML代码:
<video id="myVideo">
<source id="video_source">
</video>
Javascript代码:
//here somehow I am getting the string with the base64-encoded video
function playVideo(message) {
var myVideo = document.getElementById("myVideo");
var mySource = document.getElementById("video_source");
mySource.setAttribute("src", getEncodedVideoString("mp4", message));
myVideo.load();
myVideo.play();
};
// here I am formatting and concatenating the string for my source attribute
function getEncodedVideoString(type, message) {
return 'data:video/' + type + ';base64,' + message;
}
嗯,你可以看到,目前我面临的情况有点奇怪,但我已经在客户端上编码了视频,现在我只需要找到重现该视频的方法。
以下是我的问题出现之前,有没有人做过这样的事情,或者你有任何想法或建议去做?
答案 0 :(得分:2)
感谢一个有趣的问题;它以前从未想过,但似乎确实有可能。 Ian Devlin解释了如何使用Data URIs with HTML5 media,包括视频 - 还包括working example。
我看到的唯一区别是type
标记添加了<source>
属性;如果添加这个不起作用,你确定你的编码是正确的吗?当你尝试时会发生什么,你有任何错误吗?