无法在 spring mvc 中寻找 HTML5 视频
Unable to seek HTML5 video in spring mvc
我有两个播放 mp4 视频的项目
- 纯html(静态html文件)
- Spring MVC 应用程序。
以上两个项目都部署在Tomcat 8.
当我使用以下 URL 访问 html 项目时:
http://localhost:8080/videoplayer/index.html
页面打开并播放 mp4 视频。另外,我可以搜索视频 forward/backward.
我已将上述 index.html 页面的相同内容添加到 spring mvc jsp 中。
当我访问 index.jsp、
页面打开并播放视频。
但是,我无法搜索 forward/backward。此外,单击视频搜索栏会从头开始播放视频
注意:在 Spring MVC 中,我已将视频添加为资源。
资源配置如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/vids/**").addResourceLocations("/WEB-INF/resources/vids/");
}
控制器方法:
以下方法用于提供有视频的页面:
@RequestMapping(value = "/play", method = RequestMethod.GET)
public String playvideo() {
return "index";
}
但是,即使我在浏览器中直接点击视频资源url,我也无法通过视频进行搜索。
http://localhost:8080/tkh/resources/vids/cars.mp4
当我在两个应用程序中检查请求和 headers 时,chrome 显示如下:
1. HTML 项目
对于 html 项目,http 状态代码是 206
2。 Spring MVC 项目
对于 spring 项目,http 状态代码为 200
下面是html/jsp代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="resources/media/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="resources/media/style.css" media="screen">
<style type="text/css">
html, body { margin: 0; padding: 0; }
body { background: #f2f2f2 ; padding-top: 265px; }
.mejs-container { margin: 0 auto; }
</style>
<meta name="robots" content="noindex,follow" />
</head>
<body>
<video width="640" height="267" controls="controls" autobuffer="true" poster="resources/vids/cars.png">
<source src="resources/vids/cars.mp4" type="video/mp4">
</video>
<script>
$(document).ready(function() {
$('video, audio').mediaelementplayer();
$('video').mediaelementplayer({
alwaysShowControls: true,
videoVolume: 'horizontal',
features: ['playpause','progress','volume','fullscreen']
});
});
</script>
</body>
</html>
我了解 206 状态代码是针对部分内容。但是为什么 spring mvc 应用程序发送 200 个状态而不是 206?
我真的不确定为什么具有相同代码的页面会这样?
最后我升级到 Spring 4.2.5 解决了搜索问题。
我有两个播放 mp4 视频的项目
- 纯html(静态html文件)
- Spring MVC 应用程序。 以上两个项目都部署在Tomcat 8.
当我使用以下 URL 访问 html 项目时:
http://localhost:8080/videoplayer/index.html
页面打开并播放 mp4 视频。另外,我可以搜索视频 forward/backward.
我已将上述 index.html 页面的相同内容添加到 spring mvc jsp 中。 当我访问 index.jsp、
页面打开并播放视频。 但是,我无法搜索 forward/backward。此外,单击视频搜索栏会从头开始播放视频
注意:在 Spring MVC 中,我已将视频添加为资源。
资源配置如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/vids/**").addResourceLocations("/WEB-INF/resources/vids/");
}
控制器方法:
以下方法用于提供有视频的页面:
@RequestMapping(value = "/play", method = RequestMethod.GET)
public String playvideo() {
return "index";
}
但是,即使我在浏览器中直接点击视频资源url,我也无法通过视频进行搜索。
http://localhost:8080/tkh/resources/vids/cars.mp4
当我在两个应用程序中检查请求和 headers 时,chrome 显示如下:
1. HTML 项目
对于 html 项目,http 状态代码是 206
2。 Spring MVC 项目
对于 spring 项目,http 状态代码为 200
下面是html/jsp代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="resources/media/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="resources/media/style.css" media="screen">
<style type="text/css">
html, body { margin: 0; padding: 0; }
body { background: #f2f2f2 ; padding-top: 265px; }
.mejs-container { margin: 0 auto; }
</style>
<meta name="robots" content="noindex,follow" />
</head>
<body>
<video width="640" height="267" controls="controls" autobuffer="true" poster="resources/vids/cars.png">
<source src="resources/vids/cars.mp4" type="video/mp4">
</video>
<script>
$(document).ready(function() {
$('video, audio').mediaelementplayer();
$('video').mediaelementplayer({
alwaysShowControls: true,
videoVolume: 'horizontal',
features: ['playpause','progress','volume','fullscreen']
});
});
</script>
</body>
</html>
我了解 206 状态代码是针对部分内容。但是为什么 spring mvc 应用程序发送 200 个状态而不是 206?
我真的不确定为什么具有相同代码的页面会这样?
最后我升级到 Spring 4.2.5 解决了搜索问题。