Воспроизведение нескольких звуков одновременно JavaFx - PullRequest
0 голосов
/ 25 марта 2019

В настоящее время я работаю над проектом, который представляет собой небольшую развивающую игру для детей.Сейчас я работаю над заставкой и, похоже, у меня возникли некоторые проблемы со звуком.Сначала я подумал, что, возможно, именно mp3-файлы могли вызывать проблему, потому что я читал, что вместо них лучше использовать .wav-файлы.Эти два звука - гудящий звук пчелы и тема открытия, когда игра открывается.Иногда это работает безупречно, и нет никаких проблем, в других случаях звуки воспроизводятся секунду, а затем выключаются.Если бы кто-то мог указать мне правильное направление, это было бы большой помощью.

Я пытался преобразовать файлы в файлы .wav, похоже, это не решает проблему.Я попытался определить медиаплееры как свойства, чтобы избежать процедуры сборки мусора, которая очищает экземпляр медиаплеера.Это также, похоже, не решает проблему.

public class Intro extends Application{
     MediaPlayer mediaPlayer;

     MediaPlayer mediaPlayer2;
    @Override
    public void start(Stage primaryStage) {
        // TODO Auto-generated method stub

        //THE BEES
        String musicFile = "thebees.wav";
        String music2 = "opening.wav";
        Pane root = new Pane();
        Scene scene = new Scene(root, 600, 500);
        //Bee sound
        Media sound = new Media(new File(musicFile).toURI().toString());
        MediaPlayer mediaPlayer = new MediaPlayer(sound);
        mediaPlayer.play();

        Media sound2 = new Media(new File(music2).toURI().toString());
        MediaPlayer mediaPlayer2 = new MediaPlayer(sound2);
        mediaPlayer2.play();

Что я собираюсь сделать, так это то, что при открытии заставки оба файла будут воспроизводиться одновременно.Еще раз спасибо всем, кто помогает!

1 Ответ

1 голос
/ 26 марта 2019

Вы можете просто объединить файлы в один файл, следуя методу здесь .Убедитесь, что объединены, а не соединены.Если один файл длиннее другого, вы можете просто заполнить нулями до тех пор, пока длина не станет эквивалентной.

Похоже, что в связанном посте были проблемы с выравниванием или отсечкой.Я бы нормализовал (т. Е. 1 - максимальное значение .wav) обоих файлов до половины максимального значения (сделайте 0,5 максимального значения), а затем просто добавил каждый сэмпл вместе, чтобы получить объединенный аудиофайл, который гарантированно не будет обрезаться.Каждый файл имеет один и тот же том в соответствии с этим методом.

Если в файлах использовались разные частоты дискретизации, используйте повышающую / понижающую дискретизацию в зависимости от ситуации.

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