【问题标题】:iPad play videofilesiPad 播放视频文件
【发布时间】:2013-02-05 10:27:57
【问题描述】:

我目前正在构建一个用作视频库的 xpage 应用程序。除了 Ipad / Iphone 设备外,一切都运行良好。该应用程序使用注释文档来存储描述、摘要以及要显示的 mp4 文件。

为了显示信息,我们使用了 Flash 控件。由于这在 ipad 上不起作用,当然我使用的是 html 5 视频标签。现在我们遇到了视频文件无法在 ipad 上正确播放的问题。

当我使用 $file url 比如

http://www.mytesterver.com/database.nsf/.SysAllByUniversalId/5931A35AD3249395C1257AC900587627/$File/test.mp4

ipad 不接受该网址,因此无法播放视频。现在,当我检查其他浏览器时,这个 url 可以完美运行。当我将视频文件作为文件资源上传并在 ipad 上以这种方式访问​​文件时

http://www.mytesterver.com/database.nsf/test.mp4

视频在所有系统上都能流畅播放。现在我当然可以更改代码,以便生成文件资源。但我想将所有文件、文本等放在一个文档中。有没有人可以向我解释为什么以及如何解决这个问题?我认为这与标头发送不正确有关,但我不确定。

【问题讨论】:

  • 是否正确指定了 MIME 类型? Afaik for iPad 播放它应该是 video/mp4。您可以在网站配置publib.boulder.ibm.com/infocenter/domhelp/v8r0/… 中使用自定义规则更改标题,或者您可以在 Domino 目录的 Web/文件标识视图中添加 mp4 的文件标识条目
  • 感谢您的建议。我不关心,我必须检查,多米诺服务器是否提供正确的 mime 类型。

标签: html ipad xpages mp4


【解决方案1】:

这两个请求的区别在于,如果你打开附件,Accept-Ranges: bytes HTTP 头没有设置。 Safari 需要此标头。

为 iOS 托管媒体文件的 HTTP 服务器必须支持字节范围请求

[来源:Safari 开发者库]

如果您将视频作为文件资源打开,则会从 domino 服务器正确添加标头。

链接:Does iPhone/iPad Safari require 'Accept-Ranges' header for video?

编辑:

作为一种可能的解决方法,您可以使用这样的 servlet:http://balusc.blogspot.de/2009/02/fileservlet-supporting-resume-and.html

【讨论】:

  • 嗨,斯文,我用 curl 检查了发生的事情,确实它下载了整个文件,而不仅仅是指定的范围。是否可以配置服务器以启用带有文件附件的标头,还是我们必须忍受的限制?
  • 我认为仅添加标头并不能解决问题:Safari 检查一些字节(通过从文件中下载范围)来识别文件类型。在此检查之后,它开始获取视频。我不确定在使用从文档中直接下载文件时是否有解决方法(使用 XPage 而不是 Notes 附件链接将无济于事)。
  • 我也想过这个问题,因为只发送标头而不对其做出反应会很愚蠢。我只是好奇是否有可能创建一个 xpage 或代理,它完全符合 servlet 的功能。这样我们就不需要添加servlet,只需要使用单一的数据库设计即可。
  • 如果使用压缩,不也是这样吗。至少根据blog.nashcom.de/nashcomblog.nsf/dx/… 的说法,Domino 提供压缩文件和非压缩文件的方式存在一些差异。
  • 谢谢斯文。我已经使用您提供的代码示例编写了一个小类,它对我来说很神奇。当许多用户访问数据但现在它可以工作时,我仍然需要调查此功能的影响。您将获得赏金!
【解决方案2】:

除了 mime 类型之外,还有几件事要尝试:

  1. 删除“。”在您的 URL 中的 .nsf/ 之后。 iPad 可能会认为这是一个相对 URL。
  2. 在网址末尾添加?OpenElement
  3. 将文件保存到 domino/html 文件夹(然后每个人都可以访问)

【讨论】:

  • 感谢 panu 的回答。当我将文件保存到 domino/html 目录时,该文件确实可以由所有设备播放。我可以做两件事.. 1) 重写代码,以便将文件保存到 domino/html 目录 2) 找出它为什么不能正常工作。我希望你能帮助我 2 :)
【解决方案3】:

只是一个快速的镜头。如果 url 中的 $-character 是问题(我不知道这是一个问题吗??)您可以通过在 Domino 目录中为相关 Internet 站点创建 Web 替换规则来轻松解决它,例如允许“外部”网址为http://www.mytesterver.com/database.nsf/.SysAllByUniversalId/5931A35AD3249395C1257AC900587627/files/test.mp4

...我刚刚偶然发现了这个你可能也会感兴趣的新 openNTF 项目:http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-94NGJX

这是关于通过 WebDAV 访问文件附件 ;-)

/约翰

【讨论】:

  • 检查了 $ 是否会成为问题,但不幸的是,情况并非如此。我添加了正确的替换,除了 ios 设备(iOS 是新的 Ie6?)之外,所有其他设备都可以播放该文件。
【解决方案4】:

我在这里聚会迟到了,但我在使用带有 XPages 的 Projekktor 项目方面取得了一些成功。 http://www.projekktor.com/

这可能是一个不错的选择。 projeckktor 有很多功能。真是好东西。

在 XPages 媒体库模板中,我有一个在 OpenNTF 上使用它的旧粗略示例。有一些问题我需要改进,但它确实有效。长期以来,它也是 XPages.TV 背后的玩家。

值得一试。

【讨论】:

  • 感谢您的回答。我去看看
【解决方案5】:

我在这个讨论上有点晚了,但我遇到了同样的问题,并注意到如果使用任何压缩方法压缩视频附件,即使它可以在其他平台上运行,它也无法在 Ipad 上运行。

要验证这一点,请使用 notes 客户端将视频文件添加到富文本中,并在附加文件时,在选择要附加的文件并尝试查看视频时取消选中对话框底部的“压缩”选项使用 ipad,它应该可以工作!

如果 domino 服务器处理带有压缩附件的字节范围 http 请求,就如同处理不压缩附件一样,那就太好了。

不好的一面是,如果你想在 lotus 脚本或 java 中使用后台代理附加视频文件,你不能使用参数说“不要压缩附件”... :-(

在我的情况下,我必须将文件链接到富文本,因此,我发现的唯一解决方案是使用 lotusscript 中的“标准”API 附加它以附加富文本中的文件,然后搜索 $file字段来查找视频文件(使用文件名),将其删除,然后使用 C API 在文档中重新插入“$File”字段,而不使用压缩。

我现在没有此代码,但如果您有兴趣,可以稍后发布。

如果您不需要将文件包含在特定字段中,则只能使用 C API 将文件附加到文档中而不进行压缩。

希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2015-11-13
    • 1970-01-01
    相关资源
    最近更新 更多