为什么JavaFx媒体播放器和媒体视图不';r在某个Labtop上工作,在另一个Labtop上工作?

为什么JavaFx媒体播放器和媒体视图不';r在某个Labtop上工作,在另一个Labtop上工作?,java,windows,javafx-2,javafx-8,Java,Windows,Javafx 2,Javafx 8,我试图使用JavaFX MediaPlayer和MediaView在笔记本电脑上播放一些音频和视频文件,但媒体不起作用,应用程序也没有给出任何例外,但当我将应用程序移到另一台笔记本电脑上时,它工作得很好 这两款笔记本电脑均为HP,并在JDK 8u102下的MS Widows 8操作系统上工作 这是源代码 import java.io.File; import java.net.MalformedURLException; import javafx.application.Application

我试图使用
JavaFX MediaPlayer和MediaView在笔记本电脑上播放一些音频和视频文件,但媒体不起作用,应用程序也没有给出任何例外,但当我将应用程序移到另一台笔记本电脑上时,它工作得很好

这两款笔记本电脑均为HP,并在JDK 8u102下的MS Widows 8操作系统上工作

这是源代码

import java.io.File;
import java.net.MalformedURLException;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;

/**
 *
 * @author Anoos
 */
public class Task1 extends Application {

@Override
public void start(Stage primaryStage) throws MalformedURLException {

    Button btn = new Button();
    btn.setText("Say 'Hello World'");
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            try {
                Media media
                        = new Media(new File("002.mp3").
                                toURI().toURL().toString());
                System.out.println(media.getSource());
                MediaPlayer player = new MediaPlayer(media);
                player.play();
            } catch (Exception e) {
                 e.printStackTrace();
            }
        }
    });

    StackPane root = new StackPane();
    root.getChildren().add(btn);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}}
导入java.io.File;
导入java.net.MalformedURLException;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.layout.StackPane;
导入javafx.scene.media.media;
导入javafx.scene.media.MediaPlayer;
导入javafx.stage.stage;
/**
*
*@作者Anoos
*/
公共类Task1扩展了应用程序{
@凌驾
public void start(Stage primaryStage)引发错误的DurLexException{
按钮btn=新按钮();
btn.setText(“说‘你好,世界’”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
试一试{
媒体
=新媒体(新文件(“002.mp3”)。
toURI().toul().toString());
System.out.println(media.getSource());
MediaPlayer=新的MediaPlayer(媒体);
player.play();
}捕获(例外e){
e、 printStackTrace();
}
}
});
StackPane root=新的StackPane();
root.getChildren().add(btn);
场景=新场景(根,300,250);
setTitle(“你好,世界!”);
初级阶段。场景(场景);
primaryStage.show();
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
发射(args);
}}
有人能帮我吗


提前谢谢你(:

尝试过在调试模式下运行,看看输出窗口中是否没有异常?@Fallacoulibly,感谢您重播;实际上我没有,因为除了播放媒体之外,一切都很顺利。对于任何
异常e
,您的句柄方法中都有一个
try catch
块,这可能解释了为什么您没有看到错误。我唯一的我猜到现在为止,该文件可能找不到或无法打开。在
catch
块中添加
e.printStackTrace()
,看看会发生什么。@fallacoulibal我试过了,但也没有,该文件肯定存在,我现在将用e.printStackTrace()ISA更新这个问题,我希望我不是烦人(:两台计算机上的
002.mp3
文件大小是否相同?