javascript - Cordova |发送视频到手机

标签 javascript cordova video

我正在寻找一种无需流式传输将视频文件传输到客户移动设备的方法。原因是(客户的请求)为了消除由于预期的一次性高流量而导致的此类服务器的成本。

所以我查看了base64编码,下面是获取19mb文件所需的时间(一个具有100mb互联网连接,第二个具有3G连接)。这可能会让等待变得痛苦,尤其是在 3G 连接时。 base64 video encode timing

我还考虑过使用字节数组来显着减小文件大小,但是很难通过带有所有转义反斜杠的 JSON 传递它......

最后,我考虑了另一种可能的解决方案,那就是在应用程序关闭时将视频直接传输到客户的手机上(当文件上传到客户的手机中时推送通知) ),但这可能是 Cordova 的限制之一(据我所知)。

我几周来一直在寻找这个问题的解决方案,因此我悬赏了它,因为我相信这是一个值得回答的问题。总有一天有人会为此感谢我们。 :) 我会是第一个。

非常感谢,祝您编码愉快。

最佳答案

托管与应用服务

首先,您需要了解,无论文件来自何处 - 文件服务器(流)或应用程序服务器(base64 编码字符串),托管成本都将相似(好吧,文件托管服务器应该比您编写的任何内容都更有效,但这是一个微小的差异)。您仍然需要将文件存储在某个地方,并且仍然需要通过网络发送它。区别仅在于,在一种情况下,Apache/IIS/您使用的任何服务器都会处理所有复杂的内容,而在第二种情况下,您将尝试自己重新创建所有内容。

流式传输与非流式传输

当您提供文件时(无论是您自己,还是通过文件服务器),您可以允许以 block (流式)形式检索它,也可以仅将其作为一个巨大的大文件检索。在第一种情况下 - 流式传输 - 如果用户在视频中途停止观看,您将只需要服务器容量来服务 60 或 70% 的文件。在第二种情况下(非流式传输),您需要让用户首先等待文件完整被检索,最重要的是,它总是会消耗您 100% 的电量。

预缓存文件

这并不是说没有什么可以优化的。例如,如果您每周在周六下午 6 点分发一个文件,但已经提前一周知道该文件是什么,理论上您可以加密该文件并在整个星期的后台分发中提供该文件。是的,您甚至可以在构建 Cordova 应用程序时执行此操作(尽管这会有点困难,并且您最终可能会编写自己的插件)。尽管如此,这种情况非常罕见,并且绝对不值得花费开发时间,除非在极少数情况下(例如,通常是使用游戏文件完成的,但下载了数万次的数十 GB 数据)。

关于javascript - Cordova |发送视频到手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30543757/

相关文章:

javascript - 使用 jQuery get(0) 索引暂停和播放多个 HTML5 视频?

ios - 从服务器播放视频在 MediaPlayer 框架中不起作用

html - 无法让视频在同一个 <div> 容器中落后于图像

java - jquery/javascript : download a file from any webserver

javascript - 如何使用 $() 按索引选择元素?

javascript - 无法让 Fullcalendar 在 cordova 应用程序中显示

ios - 当 Apache Cordova iOS 应用程序有新的应用程序版本时如何通知用户?

javascript - ReactJS:当触发 onChange 时,我如何知道从组件自动传递了哪些参数?

Javascript - 如何在视频结束时更改 iframe 的 src

ios - 如何完全删除 iOS 应用程序中的 UIStatusBar?