SetVolume d'un mediaplayer (service) depuis classe
mauricelalpaga
-
mauricelalpaga -
mauricelalpaga -
Bonjour,
Je souhaiterais savoir comment faire pour contrôler le volume sonore d'une musique lancé avec un MediPlayer depuis un service. J'ai créé une classe de paramétrage, qui contient une seekbar. Et j'aimerais que lorsque j'actionne cette Seekbar, le volume de la musique change.
J'ai essayé plusieurs techniques, et la dernière me semble relativement proche, mais il y a toujours une erreur (NullPointerException).
J'ai créé une méthode dans la classe du service "music", intitulé setVolume().
Et voici le code ou j'appel cette méthode :
Merci d'avance pour votre aide.
Je souhaiterais savoir comment faire pour contrôler le volume sonore d'une musique lancé avec un MediPlayer depuis un service. J'ai créé une classe de paramétrage, qui contient une seekbar. Et j'aimerais que lorsque j'actionne cette Seekbar, le volume de la musique change.
J'ai essayé plusieurs techniques, et la dernière me semble relativement proche, mais il y a toujours une erreur (NullPointerException).
J'ai créé une méthode dans la classe du service "music", intitulé setVolume().
public class music extends Service{
MediaPlayer mp;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public void onCreate()
{
mp = MediaPlayer.create(this, R.raw.music);
mp.setLooping(true);
}
public void setVolume(int currVolume){
try{
float log1=(float)(Math.log(100-currVolume)/Math.log(100));
mp.setVolume( log1,log1);
}catch(Exception e){
}
}
public void onDestroy()
{
mp.stop();
mp.release();
stopSelf();
}
public void onStart(Intent intent,int startid){
mp.start();
}
}
Et voici le code ou j'appel cette méthode :
musicseek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
music control = new music();
control.setVolume(i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
Merci d'avance pour votre aide.
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- SetVolume d'un mediaplayer (service) depuis classe
- Service spouleur - Guide
- Ssc service utility - Forum Logiciels
- Numéro service client orange - Guide
- Windows 7 service pack 3 download 64 bit - Forum Windows 7
- Bouygues service client - Guide
2 réponses
Je précise que l'appel de la méthode fonctionne bien, j'ai mis un System.out.println(log1) pour voir ce qu'il me sortait lorsque j’appuie sur le seekbar, et il me retourne bien un float. Mais l'erreur apparait à la ligne suivante lorsqu'il va affecter cette valeur au mediaplayer avec setVolume(), il dit : NullPointerException
Cela est peut être dût au fait qu'il ne trouve pas mp (mediaplayer).
Cela est peut être dût au fait qu'il ne trouve pas mp (mediaplayer).