1

サーバーからmp3ファイルをダウンロードして電話に保存し、ユーザーがローカルで再生できるようにするコルドバアプリを作成しています。

mp3ファイルをダウンロードするための私のコードは次のようになります

$scope.downloadFile = function(Filename){
        var fileTransfer = new FileTransfer();
        var uri = encodeURI("http://archive.org/download/Kansas_Joe_Memphis_Minnie-When_Levee_Breaks/Kansas_Joe_and_Memphis_Minnie-When_the_Levee_Breaks.mp3");
        var downloadPath = cordova.file.dataDirectory+'download.mp3';

        fileTransfer.download(
            uri,
            downloadPath,
            function(entry) {
                $scope.savepath = entry.toURL();
                alert("download complete: " + entry.toURL());
            },
            function(error) {
                alert("download error");
            },
            false,
            {
                headers: {
                    "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
                }
            }
        );
    }//End DownloadFile

サーバーから mp3 ファイルをダウンロードし、download.mp3 という名前で iPhone に保存します。再生したいときはファイルパスを使用しますcordova.file.dataDirectory+'download.mp3'が、アプリが見つからなかったようなエラーがありますdownload.mp3

これはxCodeのログです

Unknown resource 'file:///var/mobile/Containers/Data/Application/F4G316AE-5BB2-3F1A-A65B-A84E3F7152AC/Library/NoCloud/download.mp3'

正しいファイル パスを確認する方法や、この問題を解決する方法があれば教えてください。

よろしく。

4

1 に答える 1

5

ファイルパスから「file://」を外す必要があります

fileURL = fileURL.replace('file://','');

$scope.media = new Media(fileURL);

$cordovaMedia.play($scope.media);

/*
'file:///var/mobile/Containers/Data/Application/XXXXXXXXX/Library/NoCloud/download.mp3'
--> Unknown resource

'/var/mobile/Containers/Data/Application/XXXXXXXXX/Library/NoCloud/download.mp3'
--> play ok!
*/
于 2015-01-12T12:51:45.240 に答える