2017-10-20 21 views
1

J'essaie de créer une application de lecture de musique dans le nom de code un, j'ai des problèmes lors de l'ajout d'un curseur sur le lecteur multimédia.Le curseur est affiché lorsque l'application fonctionne mais il ne montre pas la progression lorsque le fichier est en cours de lecture .ce est le code i utilisé pour ajouter le jeu personnalisé et mettre en pause des boutons ainsi que le curseurcodename un curseur Mediaplayer

 try { 
    video = MediaManager.createMedia(sample_url, false); 
    myslider.setMinValue(0); 
    myslider.setMaxValue(video.getDuration()/1000); 
    myslider.setIncrements(1); 
    myslider.addDataChangedListener(new DataChangedListener(){ 
     @Override 
     public void dataChanged(int type, int index) { 
      video.setTime(myslider.getProgress()*1000); 

     } 
    }); 


     } catch (Exception err) { 
     Log.e(err); 
     ToastBar.Status status = ToastBar.getInstance().createStatus(); 
      status.setMessage(" error loading sample file"); 
      status.show(); 
      status.clear(); 

    } 
    sample.add(BorderLayout.SOUTH,myslider); 

    play.addActionListener(new ActionListener(){ 
     @Override 
     public void actionPerformed(ActionEvent evt) { 
      //To change body of generated methods, choose Tools | Templates. 
      //StreamFile(songDetails,sample_url); 

      if(!video.isPlaying()){ 

      video.play(); 
      sample.removeComponent(play); 
      sample.revalidate(); 
      sample.add(BorderLayout.WEST,pause); 
      sample.revalidate(); 


      } 

     } 
    }); 
    pause.addActionListener(new ActionListener(){ 
     @Override 
     public void actionPerformed(ActionEvent evt) { 
      //To change body of generated methods, choose Tools | Templates. 
      if(video.isPlaying()){ 
      video.pause(); 
      sample.removeComponent(pause); 
      sample.revalidate(); 
      sample.add(BorderLayout.WEST,play); 
      sample.revalidate(); 

      } 
     } 
    }); 

Répondre

0

Je ne vois pas le code où vous liez un auditeur aux médias et définir la valeur de la glissez uniquement le code où vous liez un écouteur au curseur et définissez la valeur du média. Notez que vous pouvez utiliser les widgets de lecture native voir ceci: https://www.codenameone.com/blog/media-controls-print-developer-guide.html

Vous devez mettre à jour périodiquement le curseur avec la durée de lecture actuelle du support, par ex. en utilisant UITimer pour mettre à jour la valeur actuelle du curseur. Assurez-vous que cela ne déclenche pas l'événement et ne vous envoie pas dans une boucle.

+0

merci pour cette réponse.Avez-vous des échantillons de code que je peux utiliser pour relier les écouteurs et mettre à jour le curseur –

+0

Pas vraiment mais vous pouvez utiliser quelque chose comme 'UITimer.timer (1000, true,() -> {sliderLock = true; slider.setProgress (media.getTime()); sliderLock = false;}); 'Notez que dans la gestion des événements, vous devez vérifier la variable de verrouillage pour éviter tout comportement cyclique –