Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代号一个Mediaplayer滑块_Java_Android_Codenameone - Fatal编程技术网

Java 代号一个Mediaplayer滑块

Java 代号一个Mediaplayer滑块,java,android,codenameone,Java,Android,Codenameone,我正在尝试创建代号为one的音乐播放应用程序,在向媒体播放器添加滑块时遇到问题。应用程序运行时会显示滑块,但播放文件时不会显示进度。这是我用于添加自定义播放和暂停按钮以及滑块的代码 try { video = MediaManager.createMedia(sample_url, false); myslider.setMinValue(0); myslider.setMaxValue(video.getDuration()/1000); my

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

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

            }
        }
    });

我没有看到将侦听器绑定到媒体并设置滑块值的代码,只有将侦听器绑定到滑块并设置媒体值的代码。请注意,您可以使用本机播放小部件,请参见:


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

我没有看到将侦听器绑定到媒体并设置滑块值的代码,只有将侦听器绑定到滑块并设置媒体值的代码。请注意,您可以使用本机播放小部件,请参见:


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

感谢您的回复。您是否有任何代码示例可以用于绑定侦听器和更新sliderNot,但您可以使用类似于
UITimer.timer(1000,true,()->{sliderLock=true;slider.setProgress(media.getTime());sliderLock=false;})请注意,在事件处理中,您必须检查lock变量以防止该响应的循环行为。您是否有任何代码示例可用于绑定侦听器和更新sliderNot,但您可以使用类似于
UITimer.timer(1000,true,()->{sliderLock=true;slider.setProgress)的代码示例(media.getTime();sliderLock=false;});
注意,在事件处理中,必须检查lock变量以防止循环行为