Почему воспроизведение звука JavaFX MediaPlayer отлично работает на Windows и Mac, но возникают проблемы в Linux (popOS/ ⇐ Linux
Почему воспроизведение звука JavaFX MediaPlayer отлично работает на Windows и Mac, но возникают проблемы в Linux (popOS/
У меня есть игра JavaFX Tetris, которая использует класс MediaPlayer для воспроизведения музыки и звуковых эффектов. В частности, в моем классе SoundPlayer, который обрабатывает весь звук, я загружаю файлы .wav игры при запуске игры и перебираю каждый файл, создавая для каждого объект Media, а затем объект MediaPlayer для каждого объекта Media. MediaPlayer, по одному для каждого звука, сохраняются в массиве для будущего воспроизведения с помощью метода playSound класса, который принимает целочисленный аргумент, указывающий индекс MediaPlayer, соответствующий желаемому звуковому эффекту. Он отлично работает на Windows и Mac, но на моем ноутбуке под управлением popOS, хотя технически он работает, возникают следующие проблемы:
[*]
при запуске игры некоторые звуки будут воспроизводиться правильно, но после нескольких игр громкость воспроизведения станет настолько тихой, что вы ее едва услышите, хотя фактический атрибут громкости MediaPlayer не работает. изменить
[*]
некоторые звуки воспроизводят не весь звук, а только его часть.
Фоновая музыка и большинство звуков работают правильно, но в некоторых случаях возникают следующие проблемы. Вот мой код для воспроизведения звука при запуске игры:
public void playSound(int index) { MediaPlayer mediaPlayer = mediaPlayerList[индекс]; медиаплеер.стоп(); mediaPlayer.seek(Продолжительность.НОЛЬ); медиаплеер.играть(); } Это прекрасно работает на других моих компьютерах, но эта проблема возникает только на моем ноутбуке с popOS. Кто-нибудь знает, связана ли это с работой Java.sound в Linux или, возможно, это проблема с аппаратным обеспечением моего ноутбука? Я пытался настроить файл java.sound.config, но безрезультатно, и я в растерянности.
Как указано выше, я пытался найти исправления для файла конфигурации java.sound, но ничего не нашел, похоже, работает, поэтому я начинаю думать, что это может быть проблема с моим ноутбуком, но я решил попросить посмотрите, знает ли кто-нибудь что-нибудь, что я, возможно, пропустил. В настоящее время я студент CS, и это моя первая попытка проекта с использованием Java для воспроизведения звука, поэтому я совершенно не знаю, как это работает на низком уровне. Будем очень признательны за любую помощь, если кто-нибудь знает о каких-либо исправлениях или потенциальных причинах этого. Кроме того, мой аудиодрайвер обновлен, и все другие способы воспроизведения звука, которые я пробовал на этом ноутбуке, работают нормально.
Изначально я использовал класс Clip Java Sound API для воспроизведения звуковых эффектов, и воспроизведение звука работало правильно с Clips, но моя проблема с Clips заключалась в том, что звуки быстро запускались при вводе пользователя, как это часто бывает в В моей игре я обнаружил, что звук пропадает довольно часто, вероятно, из-за моих ограниченных знаний в области многопоточности, поэтому я решил вместо этого попробовать MediaPlayer от JavaFX, который гораздо более отзывчив и оптимизирован и, как я уже сказал, отлично работает на моем компьютере с Windows и Mac..... эта проблема возникает только на моем ноутбуке с Linux. Если это поможет, я использую openjdk-17.... Я не знаю, является ли это проблемой конкретно с open-jdk или oracle jdk или чем-то в этом роде.
У меня есть игра JavaFX Tetris, которая использует класс MediaPlayer для воспроизведения музыки и звуковых эффектов. В частности, в моем классе SoundPlayer, который обрабатывает весь звук, я загружаю файлы .wav игры при запуске игры и перебираю каждый файл, создавая для каждого объект Media, а затем объект MediaPlayer для каждого объекта Media. MediaPlayer, по одному для каждого звука, сохраняются в массиве для будущего воспроизведения с помощью метода playSound класса, который принимает целочисленный аргумент, указывающий индекс MediaPlayer, соответствующий желаемому звуковому эффекту. Он отлично работает на Windows и Mac, но на моем ноутбуке под управлением popOS, хотя технически он работает, возникают следующие проблемы:
[*]
при запуске игры некоторые звуки будут воспроизводиться правильно, но после нескольких игр громкость воспроизведения станет настолько тихой, что вы ее едва услышите, хотя фактический атрибут громкости MediaPlayer не работает. изменить
[*]
некоторые звуки воспроизводят не весь звук, а только его часть.
Фоновая музыка и большинство звуков работают правильно, но в некоторых случаях возникают следующие проблемы. Вот мой код для воспроизведения звука при запуске игры:
public void playSound(int index) { MediaPlayer mediaPlayer = mediaPlayerList[индекс]; медиаплеер.стоп(); mediaPlayer.seek(Продолжительность.НОЛЬ); медиаплеер.играть(); } Это прекрасно работает на других моих компьютерах, но эта проблема возникает только на моем ноутбуке с popOS. Кто-нибудь знает, связана ли это с работой Java.sound в Linux или, возможно, это проблема с аппаратным обеспечением моего ноутбука? Я пытался настроить файл java.sound.config, но безрезультатно, и я в растерянности.
Как указано выше, я пытался найти исправления для файла конфигурации java.sound, но ничего не нашел, похоже, работает, поэтому я начинаю думать, что это может быть проблема с моим ноутбуком, но я решил попросить посмотрите, знает ли кто-нибудь что-нибудь, что я, возможно, пропустил. В настоящее время я студент CS, и это моя первая попытка проекта с использованием Java для воспроизведения звука, поэтому я совершенно не знаю, как это работает на низком уровне. Будем очень признательны за любую помощь, если кто-нибудь знает о каких-либо исправлениях или потенциальных причинах этого. Кроме того, мой аудиодрайвер обновлен, и все другие способы воспроизведения звука, которые я пробовал на этом ноутбуке, работают нормально.
Изначально я использовал класс Clip Java Sound API для воспроизведения звуковых эффектов, и воспроизведение звука работало правильно с Clips, но моя проблема с Clips заключалась в том, что звуки быстро запускались при вводе пользователя, как это часто бывает в В моей игре я обнаружил, что звук пропадает довольно часто, вероятно, из-за моих ограниченных знаний в области многопоточности, поэтому я решил вместо этого попробовать MediaPlayer от JavaFX, который гораздо более отзывчив и оптимизирован и, как я уже сказал, отлично работает на моем компьютере с Windows и Mac..... эта проблема возникает только на моем ноутбуке с Linux. Если это поможет, я использую openjdk-17.... Я не знаю, является ли это проблемой конкретно с open-jdk или oracle jdk или чем-то в этом роде.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Воспроизведение аудиосообщений в формате CloudKey в формате mp4 с помощью MediaPlayer.
Anonymous » » в форуме Android - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Воспроизведение аудиосообщений в формате CloudKey в формате mp4 с помощью MediaPlayer.
Anonymous » » в форуме Android - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-