2014-12-30 2 views
1

Я делаю приложение cordova для загрузки mp3-файла с сервера, затем храните его в телефоне, а затем пользователь может воспроизводить его локально.Как играть в mp3 файл после загрузки с помощью ngcordova

мой код, чтобы скачать 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 файл с сервера и хранить его в iPhone по имени download.mp3. когда я хотел бы играть я использую путь к файлу 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' 

Я хотел бы спросите вас, если есть какой-либо способ проверить правильный путь к файлу или какую-либо идею решить эту проблему.

С уважением.

ответ

5

Вам нужно снять «файл: //» от пути к файлу

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! 
*/ 
Смежные вопросы