Воспроизведение музыки PulpCore - звук петли и громкость анимации - PullRequest
0 голосов
/ 26 марта 2010

Я экспериментировал с PulpCore, пытался создать свою собственную игру защиты башни (пока не играемую), и мне это очень нравится, я столкнулся с проблемой, которую не могу понять из. Я расширил PulpCore с помощью функции JOrbis, чтобы позволить воспроизводить файлы OGG. Работает отлично. Однако, у pulpCore, похоже, есть проблема с зацикливанием звука, пока анимация уровня громкости. Я тоже попробовал это с файлом wav, чтобы убедиться, что это не jRobis, который его сломает. Код такой:

Sound bgMusic = Sound.load("music/music.ogg");
Playback musicPlayback;
...

musicVolume = new Fixed(0.75);
musicPlayback = bgMusic.loop(musicVolume);
//TODO figure out why it's NOT looping when volume is animated
//  musicVolume.animate(0, musicVolume.get(), FADE_IN_TIME);

Этот код, пока последняя строка закомментирована, снова и снова воспроизводит music.ogg в бесконечном цикле (который я могу остановить, вызвав stop для объекта Playback, возвращенного loop (). Однако я Я бы хотел, чтобы музыка плавно исчезала, поэтому, следуя советам API-интерфейса PulpCore, я добавил последнюю строку, которая создаст эффект постепенного появления, но музыка будет воспроизводиться только один раз, а затем остановится. Интересно, почему это так? немного документации:

Воспроизведение pulpcore.sound.Sound.loop (фиксированный уровень)

Зацикливает этот аудиоклип с помощью указанный уровень громкости (от 0,0 до 1,0). Уровень может иметь свойство анимация прилагается.

Параметры: уровень

Возвращает: объект воспроизведения для этого уникальное воспроизведение звука (один звук может есть много одновременного воспроизведения объекты) или ноль, если звук мог не играться.

Так в чем может быть проблема? Я повторяю, с последней строкой звук затухает, но не зацикливается, без него он зацикливается, но начинается с указанного уровня громкости 0,75. Почему я не могу оживить громкость воспроизведения зацикленной музыки? Что я делаю неправильно? Кто-нибудь имеет опыт работы с pulpCore и сталкивался с этой проблемой? Кто-нибудь может загрузить PulpCore и попробовать зациклить музыку, которая постепенно исчезает?

примечание: мне нужно сохранить возвращенную ссылку на объект «Воспроизведение», чтобы потом можно было убить музыку.

Ответы [ 3 ]

0 голосов
/ 28 апреля 2010

Можете ли вы анимировать громкость при воспроизведении без петель, а затем, в конце этого воспроизведения, запустить цикл с фиксированного уровня?

0 голосов
/ 30 апреля 2010

Наконец-то мне удалось получить объяснение и простое решение этой проблемы от автора ядра целлюлозы. Итак, вот оно:

Это ошибка PulpCore. Когда выход громкость равна нулю, звук проигрывателя останавливается зацикливание звука.

Чтобы обойти это, анимировать из значение, которое не равно нулю, например:

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

Ссылка на это в pulpcore группах Google

0 голосов
/ 28 апреля 2010

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

...