App Cloud アプリでファイルをダウンロードする方法

今回は、App Cloud SDK でアプリを実装する際に、リンク先に指定したファイルをアプリを通して、iOS/Anroid 機器内のフォルダにダウンロードする方法を bc.device.requestDownload 関数を利用することによって実現します。App Cloud SDK 1.10 以上での利用となり、下記のサイトに詳細が英語で記載されています。

support.brightcove.com/en/docs/downloading-files-using-app-cloud-api

まず、動画ファイルを取得できるように Media API を利用して各動画の FLVURL を取得できるように Read API を呼び出します。その結果として、下記のようなコンテンツ・フィードが取得できるでしょう。

bc.device.requestDownload は上記のサポートサイトに記載されてあります通り、

bc.device.requestDownload(resource, downloadID, successCallback, errorCallback, options)

という形ですが、resource に先ほどのフィードで取得した FLVURL を指定し、疑似ランダム関数を使用した文字列を利用した downlaod ID を指定します。その後、成功・失敗した際のコールバック関数を記載し、オプションを指定します。例えば、下記のような関数が記述できるのではないでしょうか。

アプリ上にリスト化された動画群の各動画をタップすると、下記のように FLVURL (もとの動画ファイルのリンク先) や fileURI (ダウンロードされたファイルの保存先)が表示されるようなアプリを作成すると、iOS 機器の場合、Workshop アプリでアプリをテストすると FLVURL と fileURI が同じになってしまいます。ここは要注意です。

iOS 機器とは違い、Android 機器でWorkshop アプリを通してアプリを通すと FLVURL と fileURI が異なります。また、iOS機器にアプリを ad hoc 方法で実機転送したり、アプリを公開すると FLVURL (もとの動画ファイルのリンク先) や fileURI (ダウンロードされたファイルの保存先)が正常に異なります。 

requestDownload 関数を使用する場合に、ファイルをダウンロードし正常にダウンロードされた動画ファイルを視聴できたり、画像ファイルを確認するには、Android アプリの ASTRO File Manager などを利用してファイルのダウンロード先を確保する事がベストだと思います。requestDownload 関数は非常に便利な機能ですが、理解するのが難しくご自身でアプリを作成しながら機能の利用方法を把握することがアプリ実装の王道だと思います。