Ne créer qu'une instance de MediaPlayer
Bonjour, je suis un petit nouveau en dev android et j'essaye de lire des mp3 dans une webview depuis une fonction javascript.
Pour lire les sons pas de problème, j'ai trouvé un code qui marche bien, par contre il créé une instance de Mediaplayer à chaque appel et du coup je ne peut pas arrêter les sons en cours, et au bout d'un moment il y a trop d'instances de mediaplayer qui cesse de fonctionner...
Voilà le code que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import java.io.IOException;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.webkit.JavascriptInterface;
public class AudioInterface {
Context mContext;
AudioInterface(Context c) {
mContext = c;
}
//Play an audio file from the webpage
@JavascriptInterface
public void playAudio(String aud) {
final MediaPlayer mp;
try {
AssetFileDescriptor fileDescriptor =
mContext.getAssets().openFd(aud);
mp = new MediaPlayer();
mp.setDataSource(fileDescriptor.getFileDescriptor(),
fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
fileDescriptor.close();
mp.prepare();
mp.start();
}
catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}; |
si j'ai tout bien compris il ne faudrait créer qu'une instance de mediaplyer qui deviendrait du coup contrôlable avec .reset() .release() .stop()...
j'ai passé ma journée dessus et je n'arrive à rien, si une bonne âme charitable aurais une piste ce serait cool !!!
merci !