2017-10-20 89 views
1

我想在代號1中創建音樂播放應用程序,向媒體播放器添加滑塊時遇到問題。應用程序運行時會顯示滑塊,但該文件不顯示進度正在上演。這是我用來添加自定義的播放和暫停按鈕以及滑塊代碼codename one 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(); 

      } 
     } 
    }); 

回答

0

我不明白的代碼,你綁定一個監聽媒體和設定的值僅滑動將偵聽器綁定到滑塊的代碼,並設置媒體的值。請注意,您可以使用原生播放小部件,請參閱:https://www.codenameone.com/blog/media-controls-print-developer-guide.html

您需要定期使用媒體的當前播放時間更新滑塊,例如,使用UITimer更新當前滑塊值。確保這不會觸發事件觸發並且不會將您發送到循環中。

+0

謝謝你的回覆。你有任何代碼示例我可以用來綁定聽衆和更新滑塊 –

+0

不是,但你可以使用像'UITimer.timer(1000,真,() - > {sliderLock = true; slider.setProgress(media.getTime()); sliderLock = false;});'請注意,在事件處理中,您必須檢查lock變量以防止循環行爲 –