2015-06-08 106 views
2

我跟着這個教程:http://what-when-how.com/javafx-2/playing-audio-using-the-media-classes-javafx-2-part-1/的JavaFX不能播放mp3文件

package audioVideo; 

import java.net.URL; 

import javafx.application.Application; 
import javafx.scene.media.*; 
import javafx.stage.*; 

public class AudioPlayer1 extends Application 
{ 
    public static void main(String args[]) 
    { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) 
    { 
     URL resource = getClass().getResource("resources/sample.mp3"); 
     Media media = new Media(resource.toString()); 
     MediaPlayer mediaPlayer = new MediaPlayer(media); 
     mediaPlayer.play(); 

     primaryStage.setTitle("Audio Player 1"); 
     primaryStage.setWidth(200); 
     primaryStage.setHeight(200); 
     primaryStage.show(); 
    } 
} 

而且我在同一目錄中相應的.class文件相應的資源文件夾,但我仍然不能播放音頻。本教程中的mp3文件與本教程中的不一樣,但我也有一個.wav等效文件,並且發現JavaFX可以播放* .wav文件而不是mp3文件。這是怎麼回事?

我通過Eclipse使用Ubuntu 15.04 64位。它不能成爲一個資源問題,因爲.wav文件與.mp3文件夾在同一個文件夾中,但前者可以播放,而後者則不能播放。爲了讓mp3文件正確播放,我是否需要某些依賴關係?我可以直接從Ubuntu播放mp3文件。

+0

你可以直接從Ubuntu播放mp3嗎? (爲了播放mp3,你需要「限制」代碼;所以當ubuntu不能播放它們時......你需要在使用java之前添加相應的包) – GhostCat

+0

是的,我可以直接從Ubuntu播放mp3文件。我會用該信息更新問題。 – Poriferous

+1

那麼,如果這不是問題,那麼你的「它不工作」實際上是什麼樣子? eclipse控制檯中是否有例外消息? – GhostCat

回答

0

首先,導入以下內容:

import java.nio.file.Paths; 

然後,當你創建你的媒體,請執行以下操作:

Media media = new Media(("yourAudio.fileExtension").toUri().toString()); 
MediaPlayer player = new MediaPlayer(media); 

這應該(至少一個MP3)做的伎倆。