如果我通过express传送mp3文件.js服务器如下:
createReadStream('media/mp3file.mp3').pipe(res)
它发送音频数据,但我无法搜索.它只是快速暂停音频,将搜索栏移回当前时间,然后恢复音频.
这是一个GIF:
我该怎么做才能向前和向后寻找呢?
如果我通过express传送mp3文件.js服务器如下:
createReadStream('media/mp3file.mp3').pipe(res)
它发送音频数据,但我无法搜索.它只是快速暂停音频,将搜索栏移回当前时间,然后恢复音频.
这是一个GIF:
我该怎么做才能向前和向后寻找呢?
来自服务器的流文件数据不允许搜索,因为这是来自服务器上下文的一次性操作.
要启用搜索,服务器需要允许HTTP range requests,其中客户端告诉它希望接收下载的一部分(从字节X开始,到字节Y结束,即"范围"部分).
Express在使用res.sendFile()
发送文件数据时支持此类请求.
如果要使用音频播放器呈现网页,需要添加(至少)两个处理程序:一个用于HTML文件,另一个用于音频文件.如果您只是使用普通的纯HTML文件,那么可以使用express.static()
middleware,它指向包含HTML文件的目录.