【问题标题】:Unable to seek HTML5 video in spring mvc无法在 spring mvc 中寻找 HTML5 视频
【发布时间】:2016-03-10 08:19:29
【问题描述】:

我有两个播放 mp4 视频的项目

  1. 纯 html(静态 html 文件)
  2. Spring MVC 应用程序。 以上两个项目都部署在 Tomcat 8 中。

当我使用以下 URL 访问 html 项目时:

http://localhost:8080/videoplayer/index.html

页面打开并播放 mp4 视频。另外,我可以向前/向后搜索视频。

我已将上述 index.html 页面的相同内容添加到 spring mvc jsp 中。 当我访问那个 index.jsp 时,

页面打开并播放视频。 但是,我无法向前/向后寻找。此外,单击视频搜索栏会从头开始播放视频

注意:在 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

当我检查两个应用程序中的请求和标头时,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 呢?

我真的不确定为什么具有相同代码的页面会这样?

【问题讨论】:

  • 206 状态完全正常,因为您的播放器正在请求具有给定字节范围的媒体(标题范围:字节=2161242-)。因此,您的服务器以 206 响应。当您直接访问媒体时,请求不包含范围。
  • 但是 MVC 应用程序给出 200 状态。而且我没有直接访问。
  • MVC应用是什么意思?
  • 我的意思是它是一个 Spring mvc 应用程序,我在上面的图像 #2 中收到 200 的请求 url 响应
  • “html 项目”是什么意思(使用 http 服务器提供静态文件?)。您使用的是哪个 Spring 版本?您如何提供该 mp4 文件(Spring 资源处理?控制器?应用程序中的默认 servlet?)。向我们展示一些服务器代码:-)

标签: java spring-mvc video-streaming html5-video http-status-codes


【解决方案1】:

最后我通过升级到 Spring 4.2.5 解决了 seek 问题。

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 2013-12-07
    • 2012-05-14
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2017-10-16
    相关资源
    最近更新 更多