Java 代号一个Mediaplayer滑块
我正在尝试创建代号为one的音乐播放应用程序,在向媒体播放器添加滑块时遇到问题。应用程序运行时会显示滑块,但播放文件时不会显示进度。这是我用于添加自定义播放和暂停按钮以及滑块的代码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
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变量以防止循环行为