【问题标题】:How to serve video files to the ipad using jetty/ring如何使用 jetty/ring 向 ipad 提供视频文件
【发布时间】:2012-09-02 10:21:27
【问题描述】:

我已经建立了一个带有文件服务器的简单环服务器

(ns 从头开始​​。基本测试 (:use [ring.middleware.file :only [wrap-file]] [ring.middleware.file-info :only [wrap-file-info]]) (:require [ring.adapter.jetty :as jetty])) (定义裸处理程序 [请求] {:状态 200 :headers {"Content-Type" "text/html"} :body (str 请求}) (防御服务器 (run-jetty (-> #'naked-handler (包装文件“资源/公共”) 包装文件信息) {:端口 8890:加入?错误的}))

我在resources/public 目录中有test.mp4video.html


video.html引用mp4文件:

  ...blah...
  <video id="my_video_1" controls>
     <source src="test.mp4" type='video/mp4'>
   </video>
  ...blah...

当我在 safari、firefox 中打开 http://server-ip-address:8890/video.html 时,它工作正常

但是,当我在 ipad 上打开它时,它并没有.. 而是显示一个黑色的不能播放矩形。


当我将相同的文件放入 apache 服务器并在 ipad 上打开 video.html 时,视频播放完美......

发生了什么事?

【问题讨论】:

标签: clojure jetty ring


【解决方案1】:

我会在这里回复,因为评论部分对我来说太紧了:)。

我认为在更改任何内容之前先查看一下 HTML 标头是有意义的。将 Apache 提供给您的内容与 ring 进行比较。该问题可能与here 所描述的问题有关,或者可能是其他问题。如果您不知道如何查看标题 this 可能会有所帮助。

至于修改标头,我认为如果需要修改任何内容,它将在环级别而不是 Jetty 上。

我在这里运行你的应用程序是标题:

Name    Value
Date    Wed, 12 Sep 2012 05:26:20 GMT
Content-Length  36320472
Last-Modified   Sat, 12 May 2012 21:04:47 +0000
Server  Jetty(7.6.1.v20120215)
Content-Type    video/mp4;charset=UTF-8

它在 Chrome 中播放,抱歉我没有 iPad 来查看它。内容长度正确,等于原始 mp4 文件大小。

我想除非您从两台服务器上发布标头,否则我无能为力。

【讨论】:

  • 谢谢。只是想知道......为什么标题会这样混乱?
  • 我从 Clojure 服务器发布了标头。
猜你喜欢
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多