0
我想制作一个简单的应用程序,它会在启动时自动从URL播放歌曲。我知道如何使用mediaPlayer按按钮播放歌曲,但我不知道如何自动播放它?JavaFX如何在启动时播放歌曲
这是我initPlayer
,我在我Controller
类playButtonFired
方法的内部使用方法:
public void startup(){
String URL="http://download.oracle.com/otndocs/javafx/JavaRap_Audio.mp4";
initPlayer(URL);
}
private void initPlayer(String uri)
{
if(uri==null)
{
return;
}
Media media = new Media(uri);
mediaPlayer = new MediaPlayer(media);
mediaPlayer.setOnReady(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
enableControls();
}
});
这是我的主类:
public class MainGui extends Application {
@Override
public void start(Stage primaryStage) {
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("MediaPlayer.fxml"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
在JavaFX的'public void start(Stage primaryStage)'函数内添加开始播放歌曲的代码。 ('mediaPlayer.play()'开始播放一首歌曲) – showp1984
好的,但是“public void start(Stage primaryStage)”方法被放置在另一个类中(一个JavaFX主类),并且上面的代码被放置在我的控制器类中。所以我不能在那里使用initPlayer(String uri)方法。 – raz
你可以通过在Main类中持有对控制器的引用来解决这个问题,或者(我更喜欢自己)在Controller中创建一个'public static void startup()'函数并从JavaFX启动函数调用它。这样,您可以在控制器中的新功能中添加启动时应执行的所有操作。 (这比在Main类中持有x引用更干净) – showp1984