web-dev-qa-db-fra.com

Répertoire de stockage des fichiers audio dans Android

Je veux lire un fichier audio basé sur le clic d'un bouton. J'ai défini la méthode onClickListener() et le fichier de mise en page. Lorsque j'ajoute les fichiers wav au répertoire res/, J'obtiens l'erreur de build suivante:

nom de répertoire de ressources non valide temp.wav/hello/res ligne 1 Android Problème AAPT

Ma question est la suivante:
1. Dans quel répertoire dois-je stocker les fichiers audio? Actuellement, ils se trouvent dans le dossier res /.
2. De plus, mp.setDataSource("/res/temp.wav") la bonne façon d'invoquer le lecteur multimédia?

33
Sriram

Les fichiers audio peuvent être déplacés vers un dossier nommé raw qui doit être créé dans le dossier res.

Il est accessible par le code suivant:

MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.soundclip);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.start();

C'est le moyen le plus simple. Tu peux l'essayer..

82

j'espère que cela vous aidera:

brut/

Fichiers arbitraires à enregistrer dans leur forme brute. Pour ouvrir ces ressources avec un InputStream brut, appelez Resources.openRawResource () avec l'ID de ressource, qui est R.raw.filename.

Cependant, si vous avez besoin d'accéder aux noms de fichiers et à la hiérarchie de fichiers d'origine, vous pouvez envisager d'enregistrer certaines ressources dans le répertoire assets/(au lieu de res/raw /). Les fichiers dans les actifs/ne reçoivent pas d'ID de ressource, vous pouvez donc les lire uniquement à l'aide d'AssetManager.

cela vient du dev guide .

[Edit: mais je ne pense pas que ce soit une bonne idée de mettre vos fichiers musicaux dans le répertoire res - cela dépend de quel est le but de ces fichiers?]

14
karla

Notez que la préparation peut prendre un certain temps, ce qui peut ralentir les interactions des utilisateurs avec votre application. Voir les notes de développement ici , en particulier la section Préparation asynchrone!

Vous pouvez également utiliser le SoundPool si la taille des fichiers est inférieure à 1 Mo. Cela gère la synchronisation avec le thread d'interface utilisateur pour vous. Ceci est un article très utile sur son utilisation (Lars a un certain nombre d'excellents articles!).

2
james