我有一个 Node.js 服务器,用于通过流提供音频和视频文件。 该服务器接受范围(字节服务)。
我的目标是从客户端(浏览器)请求音频或视频,并且仅获取文件的一小块(例如 320kb),并在复制此 block 完成之前,请求文件的下一个范围并重复该过程直到文件被完全消耗。
怎样才能实现这个目标?我可以使用音频/视频 API html5 来实现此目的吗?我如何定义我想要消耗的 block 的大小?
最佳答案
您不必执行任何操作 - 例如,如果您使用标签并请求“ block ”中的文件,并且您的服务器如您所说支持范围请求,则所有主要现代浏览器都会自动支持范围请求。
您可以通过使用浏览器中的开发人员工具并观察网络选项卡来查看它的运行情况。
但是,我不知道自己指定 block 大小的方法 - 如果这对您来说真的很重要,您可以使用媒体源扩展机制,它本质上允许您处理下载以及您想要的任何操作在将流式文件传递到浏览器视频播放器之前对其执行的操作。
需要注意的一件事 - 对于 mp4 文件, header 需要位于文件的开头才能进行流式传输。默认情况下,它位于末尾,因此您需要移动它 - 有许多工具可以让您执行此操作。请参阅此处的示例:
关于javascript - 按 block 加载视频/音频 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890045/