Каков наилучший вариант для воспроизведения звукового эффекта / музыки с помощью javafx? - PullRequest
0 голосов
/ 13 мая 2019

Я видел и пробовал несколько вещей с AudioCLip, MediaPlayer и другими, но ничего не получалось. Кроме того, я понятия не имею, как работает система URL или URI. Там я снова видел много вещей, но не знаю, какие из них действительно правильные.

Это код, который я использовал в своей последней попытке:

public void start (Stage primaryStage) throws Exception {
        // TODO Auto-generated method stub
        //Initialising path of the media file, replace this with your file path
        //File is in the same project with the following path:
        String path = "file:src/SoundTest/Megalovania.mp3";
        File file = new File(path);

        //Instantiating Media class
        if(file.exists()) {
            Media media = new Media(file.getPath());
            MediaPlayer mediaPlayer = new MediaPlayer(media);
            mediaPlayer.setAutoPlay(true);
        } else{
            System.out.println("file not found");
        }

        //Instantiating MediaPlayer class


        //by setting this property to true, the audio will be played

        primaryStage.setTitle("Playing Audio");
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }

Может кто-нибудь сказать мне, если это работает, если URL-адрес был правильным? А если нет, то что еще не так?

1 Ответ

0 голосов
/ 07 июня 2019

Этот код работает, но только если у вас есть что-то похожее на сцену, иначе код остановится раньше.Не уверен, что пустой этап работает.

import javafx.application.Application;
import javafx.scene.image.Image;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
import javafx.util.Duration;

import java.io.File;
import java.net.URISyntaxException;

public class AudioTest extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        String musicFile = "Megalovania.mp3";     // For example

        Media sound = null;
        try {
            sound = new Media(getClass().getResource(musicFile).toURI().toString());
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        MediaPlayer mediaPlayer = new MediaPlayer(sound);
        mediaPlayer.play();

    }
}

Это был путь / ресурс с самого начала.Теперь я понял это благодаря моему учителю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...