HTML5 视频作为 base64 编码数据 URI 在 iPad 和 iPhone 浏览器中不起作用

Posted

技术标签:

【中文标题】HTML5 视频作为 base64 编码数据 URI 在 iPad 和 iPhone 浏览器中不起作用【英文标题】:HTML5 video as base64 encode data URI not working in iPad and iPhone browser 【发布时间】:2013-06-21 03:29:25 【问题描述】:

我需要在 iPad 和 iPhone 上使用 HTML5 视频标签以 base64 数据 URI 格式播放视频,这最终帮助我通过将视频存储在 websql 中来使视频离线,

我得到了一个帮助我研究可行性的链接 - http://iandevlin.com/html5/data-uri/video.php(如果你查看链接的源代码,你会看到它以 base64 格式很好地编码)

我在大多数现代浏览器上试过这个,比如 windows 机器中的 chrome 和 firefox 以及 mac os 中的 safari,效果很好。

所以我的希望增加了,我在 iPhone 和 iPad 上尝试了它,它不在那里工作!我只是得到一个 黑屏 来代替视频控件。

另外,我在 safari 调试模式下也没有收到任何错误。我想知道我们是否可以播放 base 64 编码的视频,或者它只是 ipad 和 iphone 的一个已知问题。 .

【问题讨论】:

这里有什么消息吗?我也有同样的问题... 我刚刚在我的 Windows Phone 上厌倦了它,它就像一个魅力。我可以稍后在我的开发 iPhone 上尝试并报告。 【参考方案1】:

要在 HTML5 标记下播放视频,您需要提供其内容源,例如图像和视频/音频文件名,没有任何路径,然后才能正常工作

【讨论】:

【参考方案2】:

使用 Base64 媒体编码时,您需要注意内存消耗会大幅增加,一旦媒体不在文档中,它就与外部媒体包含不同,并且可能加载到仅消耗您真正需要的内存的帧中。

使用 Base64 需要加载所有数据来执行解密,而大多数移动浏览器需要大量时间来显示视频,因为它们的可用内存非常小(通常大部分内存都被操作系统消耗)并且转换需要一个long,当一个进程在移动系统中花费很长时间时,垃圾收集器将其视为僵尸线程并将其杀死。

假设您可以在移动浏览器中使用 base64 作为视频实际上不是一个好主意,它应该不起作用。

【讨论】:

【参考方案3】:

我发现 ios Safari 在数据 uri 中具有正确的 Mime 类型方面比桌面浏览器更挑剔。你应该确保你使用的是正确的。

【讨论】:

以上是关于HTML5 视频作为 base64 编码数据 URI 在 iPad 和 iPhone 浏览器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

强制粘贴事件以 base64 编码图像

Sencha Touch 2 + PhoneGap + iPad:带有base64编码数据的视频:“操作无法完成”

Base64 PNG 数据到 HTML5 画布

Base-64编码介绍

在 NodeJs 中解码 base64 编码的 webm 视频

图片的base64码,如何在js里进行编码??