2010-11-11 39 views
10

Il ya un mois j'ai commencé à travailler avec phonegap, html5, css3 et jQtouch. Je travaille sur une application et j'ai besoin de jouer du son dans l'application. J'ai un sérieux problème avec cette tâche. J'ai d'abord découvert que je pouvais lire des fichiers .mp3 via phonegap en utilisant la nouvelle fonction Media (...). Je ne suis pas sûr des fichiers .wav, puis-je les jouer? Deuxièmement, j'ai trouvé que les fichiers doivent être inférieurs à 30 secondes, est-ce le cas? Troisièmement, je ne trouve pas le bon endroit pour mes fichiers audio. Ma structure de projet est le suivant:Comment jouer la chanson dans Android - phonegap

project 
-- src 
-- gen 
-- assets 
-- -- www 
-- -- DANCE.mp3 
-- -- jqtouch 
-- -- -- (some folders and files) 
-- -- phonegap.js 
-- libs 
-- res 

J'ai essayé de placer le fichier dans le dossier « www » et la création d'un nouveau appelé « audio ». Rien de tout cela ne m'a donné ce que je voulais. J'utilise ce code pour l'exécution de la chanson:

function playStream() { 
    mp3file = new Media("DANCE.mp3", 
      function() { 
       alert("playAudio():Audio Success"); 
      }, 
       function(err) { 
        alert(err); 
      } 
      ); 
      mp3file.play(); 
} 

J'utilise Android 2.1 Simulator et je l'ai essayé 2.2 et sans succès. J'espère que j'étais assez clair. J'ai hâte d'avoir de vos nouvelles. Vôtre, Mihail Velikov

Répondre

18

PhoneGap pour Android vous permet de stocker des fichiers audio locaux en deux endroits: android_asset: nom du fichier doit commencer par /android_asset/sound.mp3 sdcard: nom de fichier est juste son.mp3

Si vous placez votre DANCE .mp3 dans le répertoire actif de votre projet, vous pouvez y jouer en utilisant le chemin: (. vous pouvez lire la source AudioPlayer.java dans les sources PhoneGap Android pour voir comment cela fonctionne)

mp3file = new Media("/android_asset/DANCE.mp3", 
     function() { 
      alert("playAudio():Audio Success"); 
     }, 
      function(err) { 
       alert(err); 
     } 
     ); 
     mp3file.play(); 

+0

Merci! Cette information était difficile pour moi de trouver pour une raison quelconque. Votre réponse doit être marquée comme la réponse correcte IMO. –

+0

Bien sûr Jack, je crois que vous avez raison. Cela fait un certain temps que j'ai terminé ce projet. Merci pour votre réponse –

+0

Cela signifie-t-il que vous ne pouvez pas avoir vos médias dans des dossiers, qu'il doit être à la racine pour fonctionner? – nycynik

0

Pourquoi ne jouez-vous pas les chansons en utilisant le HTML 5 audio tag? Votre vue est un webView .. ne devrait pas importer, c'est plus simple et vous avez plus de contrôle.

+0

Comme autant que je sache, le tag

+0

La balise audio est prise en charge dans 2.1 et 2.2. Mais .. il ne supporte pas les formats audio. – timing

+0

Je pense que le vieux html5 ordinaire ne lie pas dans le comportement de lecture audio natif, comme continuer à jouer quand l'appareil se met en veille. – BraveNewMath

1

J'ai découvert où était mon erreur. Le fichier audio que je veux lire n'a pas été placé correctement, comme je le pensais au début. Je l'avais déplacé dans le dossier/sdcard et tout était merveilleux! P.S. Je n'utilise que des noms de fichiers, pas de dossiers.

+1

comment puis-je accéder à la chanson sdcard et jouer en utilisant javascript? –

+0

Bonjour @HirenDabhi voulez-vous dire jouer du son en utilisant l'API PhoneGap [link] (http://docs.phonegap.com/fr/1.4.1/phonegap_media_media.md.html#Media) ou sans elle? –

+0

Comment enregistrer le fichier audio avec phonegap sur la carte SD, alors que phonegap enregistre tous les fichiers sur le stockage interne? –

2

Puis-je offrir un conseil .. Si vous utilisez le lecteur multimédia PhoneGap .. Vous devez supprimer le fichier: // du chemin .. Il doesn pas accepter un URI complet pour les fichiers locaux Cordialement Kim