为什么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
文件大小是否相同?