【发布时间】:2014-09-23 01:22:07
【问题描述】:
我想在 javafx 中使用跳跃手势更改媒体源并重新启动 mediaplayer。
- 如何在 LeapListener 中描述屏幕轻击手势情况以重新启动媒体播放器?
- 使用滑动手势更改媒体源很热门?
有什么可以修复的请帮忙(我是java初学者,这是第一次编程)
这是我的代码
公共类 Leaptest 扩展应用程序{
private final LeapListener listener = new LeapListener();
private final Controller leapcontroller = new Controller();
private Media media = new Media("file:///C:/Users/halim.shin/workspace/Movie/flower.mp4");
private MediaPlayer player = new MediaPlayer(media);
private MediaView view = new MediaView(player);
@Override
public void start(Stage Stage) throws Exception {
leapcontroller.addListener(listener);
BorderPane root = new BorderPane();
int key_move_delta = 10;
double size_delta = 1.05;
root.setCenter(view);
Scene scene = new Scene(root,500,500,Color.BLACK);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
scene.setOnKeyPressed(new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent event) {
// TODO Auto-generated method stub
switch(event.getCode()){
case UP : view.setTranslateY(view.getTranslateY() - key_move_delta); break;
case RIGHT : view.setTranslateX(view.getTranslateX() + key_move_delta); break;
case DOWN : view.setTranslateY(view.getTranslateY() + key_move_delta); break;
case LEFT : view.setTranslateX(view.getTranslateX() - key_move_delta); break;
case PAGE_UP : view.setScaleX(view.getScaleX()*size_delta); view.setScaleY(view.getScaleY()*size_delta); break;
case PAGE_DOWN : view.setScaleX(view.getScaleX()/size_delta); view.setScaleY(view.getScaleY()/size_delta); break;
case ENTER : player.pause(); break;
case SPACE : player.play(); break;
}
}
});
player.setCycleCount(MediaPlayer.INDEFINITE);
player.setMute(true);
// player.play(); //
Stage.setFullScreen(false);
Stage.setScene(scene);
Stage.show();
}
public void stop(){
leapcontroller.removeListener(listener);
}
public static void main(String[] args){
launch(args);
}
}
公共类 LeapListener 扩展监听器 {
public void onConnect(Controller controller){
controller.enableGesture(Gesture.Type.TYPE_SWIPE);
controller.enableGesture(Gesture.Type.TYPE_CIRCLE);
controller.enableGesture(Gesture.Type.TYPE_SCREEN_TAP);
controller.enableGesture(Gesture.Type.TYPE_KEY_TAP);
}
public void onFrame(Controller controller){
Frame frame = controller.frame();
GestureList gestures = frame.gestures();
for(int i=0; i<gestures.count(); i++){
Gesture gesture = gestures.get(i);
**switch (gesture.type()){
case TYPE_SCREEN_TAP :
??????????????????
System.out.println("Key");
break;
default :
break;**
}
}
}
}
【问题讨论】:
标签: javafx-8 leap-motion