代号为Mediaplayer的一个滑块

时间:2017-10-20 15:05:41

标签: java android codenameone

我正在尝试以代号创建一个音乐播放应用程序,我在向媒体播放器添加滑块时遇到问题。当应用程序运行时会显示滑块,但在播放文件时它不会显示进度。这是我用来添加自定义播放和暂停按钮以及滑块的代码

     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();

            }
        }
    });

1 个答案:

答案 0 :(得分:0)

我没有看到将侦听器绑定到媒体的代码,并且只将滑块的值设置为将侦听器绑定到滑块并设置媒体值的代码。请注意,您可以使用本机播放小部件,请参阅:https://www.codenameone.com/blog/media-controls-print-developer-guide.html

您需要使用媒体的当前播放时间定期更新滑块,例如使用UITimer更新当前滑块值。确保这不会触发事件触发并且不会将您发送到循环中。