2015-12-29 13 views
8

Ho problemi a riprodurre mp3 sul mio iphone 6 utilizzando phonegap.Download e decompressione di PhoneGap con riproduzione mp3

Sto scaricando un file zip dal server che contiene 1 file mp3 e 3 file immagine.

Tutti sembrano scaricare correttamente ma non sono troppo sicuro del file mp3 come non suonerebbe.

Per testare se i file sono lì che sto facendo questo:

<img src="cdvfile://localhost/persistent/audio/1.jpg" alt="" /><br> 
<img src="cdvfile://localhost/persistent/audio/2.jpg" alt="" /><br> 
<img src="cdvfile://localhost/persistent/audio/3.jpg" alt="" /><br> 

<a href="cdvfile://localhost/persistent/audio/1.mp3">MP3HERE</a><br> 

<audio class="audio" controls> 
    <source src="cdvfile://localhost/persistent/audio/1.mp3" type="audio/mpeg"> 
</audio> 

I 3 immagini mostrano in modo so che tutti i file devono essere lì, ma anche se ho il lettore audio è solito giocare qualcosa di così ho creato un like anche per l'mp3 che non suona neanche.

Qui è la funzione che ho usato qui di seguito:

function downloadAndUnzip() { 

var fileTransfer = new FileTransfer(); 

fileTransfer.download(
    "http://myserver.com/test.zip", 
    "cdvfile://localhost/persistent/audio/test.zip", 
    function(entry) { 
     alert("download complete: " + entry.fullPath); 

     zip.unzip("cdvfile://localhost/persistent/audio/test.zip", 
      "cdvfile://localhost/persistent/audio/", 
      function(){ 
       alert('Zip decompressed successfully'); //I get this alert 

       alert('Checking if test.zip exists'); 
       checkIfFileExists("/audio/test.zip"); //returns that it exists 

       alert('Checking if 1.jpg exists'); 
       checkIfFileExists("/audio/1.jpg"); 

       alert('Checking if 2.jpg exists'); 
       checkIfFileExists("/audio/2.jpg"); //returns that it exists 

       alert('Checking if 3.jpg exists'); 
       checkIfFileExists("/audio/3.jpg"); //returns that it exists 

       alert('Checking if 1en.mp3 exists'); 
       checkIfFileExists("/audio/1.mp3"); //returns that it exists 

      } 
     ); 

    }, 
    function(error) { 
     alert("download error source " + error.source); 
     alert("download error target " + error.target); 
     alert("upload error code" + error.code); 
    }); 

} 

Ora, per quanto riguarda le segnalazioni vanno, il file zip era successo download e non compresso.

Qualche idea su come posso risolvere o risolvere questo problema?

+0

È necessario abilitare la sorgente multimediale in Content-Security-Poilcy. Vedi il mio post: http: // StackOverflow.it/questions/34374139/how-to-play-an-html-5-video-in-cordova-ios-app/34378964 # 34378964 – Joerg

+0

Ho aggiunto questo: ma mp3 non funziona ancora :/ – Satch3000

+0

Posso riprodurre i file audio solo quando sono compressi nell'app, ma quando scarico i file audio non vengono riprodotti – Satch3000

risposta

0

Ecco cosa ha funzionato nel mio case:

cdvfile:// non ha funzionato per me.

Era tutto un problema con il percorso.

Nel mio caso utilizzando "cordova.file.dataDirectory" risolto il problema.

0

Mi sono appena imbattuto in un problema simile, non ero in grado di mostrare immagini dal filesystem locale.

Secondo la documentazione a https://www.npmjs.com/package/cordova-plugin-file (sotto protocollo cdvfile), ho cambiato le regole di sicurezza Contenuto:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap:cdvfile:https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

<access origin="cdvfile://*" /> 

forse aiuta.

Aggiornamento per chiarimenti:

Mettere

<access origin="cdvfile://*" /> 

nel file radice config.xml del progetto sotto il widget. Esso dovrebbe essere così:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<widget ...> 
... 

<access origin="cdvfile://*" /> 

... 
</widget> 

mettere nel vostro codice HTML delle norme di sicurezza di contenuti come:

<meta http-equiv="Content-Security-Policy" content=" 
      default-src 'self' data: gap: cdvfile: 

... 

e poi fare la compilazione con:

cordova build 
+0

Aggiungo questo: al file config.xml? – Satch3000

+0

Ho provato il codice sopra ma per qualche motivo il meta tag --- Satch3000

+0

Sto usando la versione: cli-5.2.0 potrebbe essere questo il problema? – Satch3000