J'ai essayé d'utiliser la fonction de chargement de SoundPool qui prend un FileDescriptor, car je voulais pouvoir définir le décalage et la longueur. Le fichier n'est pas stocké dans les ressources mais un fichier sur la carte de stockage. Même si ni la charge ni la fonction de lecture du SoundPool ne lèvent d'exception ou n'impriment rien sur la console, le son n'est pas joué. Utiliser le même code, mais utiliser la chaîne de chemin de fichier dans le constructeur SoundPool fonctionne parfaitement.SoundPool.load() et FileDescriptor à partir du fichier
Voilà comment j'ai essayé le chargement (début est égale à 0 et la longueur est la longueur du fichier dans miliseconds):
FileInputStream fileIS = new FileInputStream(new File(mFile));
mStreamID = mSoundPool.load(fileIS.getFD(), start, length, 0);
mPlayingStreamID = mSoundPool.play(mStreamID, 1f, 1f, 1, 0, 1f);
Si je l'utiliser, cela fonctionne:
mStreamID = mSoundPool.load(mFile, 0);
mPlayingStreamID = mSoundPool.play(mStreamID, 1f, 1f, 1, 0, 1f);
Des idées quelqu'un?
Merci