1

私は、オフラインで使用するためにビデオとオーディオファイルのストリーミングとダウンロードを提供したい ionic phonegap でアプリを作成しています。

デスクトップと Android では、これは簡単です。私がしなければならないのは、ファイルに直接リンクし、php のヘッダー ディレクティブを変更してダウンロードを強制することだけです。

iPhone/iOS では、同じリンクをクリックすると、すぐにプレーヤーでファイルを開こうとし、ファイルをダウンロードしません。さらに、実際にはファイルを再生しません。空のビデオ プレーヤーをロードするだけです。

これをグーグルで検索してSOで調べてみましたが、アプリ内でファイルをダウンロードして保存するためのガイドしか見つかりません。

例: iOS - ビデオのダウンロード

しかし、それは私が必要とするものではありません。車輪を再発明して、アプリをファイル マネージャーに変えたくありません。電話でカメラロールにネイティブに保存するか、ユーザーが通常オフラインビデオに使用するアプリでファイルをロードするように求める必要があります。

これが可能であることを示すユーザーレベルのガイドを見つけましたが、開発者としてこれを可能にする方法については述べていません。

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

iOS がローカルにダウンロードすることを認識できるように、ビデオ リンクをマークアップするにはどうすればよいですか?

4

1 に答える 1

1

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
);

編集:

質問に「カメラロール」が抜けていてすみません。URL からカメラ ロールに画像を直接保存する方法はないと思います。ただし、これには間接的な方法があります。アプリの HTML5 キャンバスに画像をロードできる可能性があります。その後、base64 形式の data_url をカメラロールに保存するだけです。

詳細については、この回答を確認してください: PhoneGap のパス/URL からカメラ ロールに保存します。

于 2015-01-09T19:08:06.287 に答える