在 iOS 中是否有用于下载视频和音频的特殊标记?

Is there special markup for downloading video and audio in iOS?

我正在 ionic phonegap 中制作一个应用程序,我想在其中提供流式传输和下载视频和音频文件以供离线使用。

在桌面和 Android 中,这很容易。我所要做的就是直接 link 文件并修改 php 中的 header 指令以强制下载。

在 iPhone/iOs 中,单击相同的 link 会尝试立即在播放器中打开文件,但不会下载文件。此外,它实际上并不播放文件。它只是加载一个空的视频播放器。

我试过用谷歌搜索并在 SO 上查找它,但我只能在应用程序中找到下载和存储文件的指南

如:iOS - Download Video

但这不是我需要的。我不想重新发明轮子并将我的应用程序变成文件管理器。我需要 phone 将其本地存储在 cameraroll 中或提示用户将文件加载到他们通常用于离线视频的任何应用程序中。

我确实找到了一个 user-level 指南,说明这是可能的,但它没有说明我们如何才能让开发人员实现这一点:

http://osxdaily.com/2013/05/28/save-videos-from-mail-ios/

如何标记视频 link 以便 iOS 知道将其下载到本地?

请检查 File Transfer Cordova 插件,看看它是否适用于您。

http://plugins.cordova.io/#/package/org.apache.cordova.file-transfer

下面是一个示例代码片段:

var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/example_file.mp4");

fileTransfer.download(
    uri,
    fileURL,
    function(entry) {
        console.log("download complete: " + entry.toURL());
    },
    function(error) {
        console.log("download error source " + error.source);
        console.log("download error target " + error.target);
        console.log("upload error code" + error.code);
    },
    false, null
);

编辑:

抱歉,您的问题中遗漏了 "cameraroll"。我相信没有直接的方法可以将图像从 url 保存到相机胶卷。但是,有一种间接的方法。您可以在应用程序的 HTML5 canvas 上加载图像。之后,只需将其 base64 格式 data_url 保存到您的相机胶卷。

查看此答案以获取更多信息:Save to camera roll from path/URL in PhoneGap