你可以查看一下请求头,请求头里面有range属性
服务端按照range属性的值返回视频的一部分就行了,不要一次性全返回到前端
我这边没有Java的实现,这是我之前NodeJS的实现方法
@Get(':path')
public async getVideoStream(@Req() request: Request, @Res() response: Response,@Param('path') path: string) {
path = this.checkAndResolvePath(path);
if(!await promisify(exists)(path)) {
response.status(HttpStatus.NOT_FOUND).json({ message: 'file not found' });
return;
}
const fileStat = await promisify(stat)(path);
if(fileStat.isDirectory()) {
response.status(HttpStatus.BAD_REQUEST).json({ message: 'path is a folder' });
return;
}
const range = request.head