MediaPlayer arret avec onPause()
Bonjour,
Voici mon problème:
Je cherche à couper un mediaplayer lorsque l'application quitte le foregroung (retour ou home), mais le mediaPlayer que je lance se trouve dans un autre fichier .java
Il faudrait que je puisse invoquer une méthode situer dans l'autre fichier .java mais il y a une icohérence entre static et non static méthode. Comment je peux faire?
Voici le code, MainActivity.class:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
MediaPlayer mp = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView(); // ici la webView qui accède au fichier audio via une page HTML
}
@Override
public void onPause(){
super.onPause();
if(mp != null){
mp.stop();
//mp.release();
}
} |
Et celui de WebAppInterface:
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 50 51
| Context mContext;
MediaPlayer mp = null;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
//Play an audio file from the webpage
@JavascriptInterface
public void playAudio(String aud) { //String aud - file name passed
//from the JavaScript function
try {
stop();
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(aud);
mp.prepareAsync();
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
mp = null;
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@JavascriptInterface
public void stopAudio() {
stop();
}
public void stop(){
if(mp != null){
mp.stop();
//mp.release();
} |
Merci d'avance