2010-03-26 3 views
0

Я экспериментировал с PulpCore, пытаясь создать my own tower defence game (еще не играемый), и мне это очень нравится. Я столкнулся с проблемой, которую я не могу понять , Я расширил PulpCore с помощью JOrbis, чтобы разрешить воспроизведение файлов OGG. Работает отлично. Тем не менее, pulpCore, похоже, имеет проблемы с циклизацией звука WHILE, оживляющего уровень громкости. Я попробовал это с wav-файлом, чтобы убедиться, что это не jOrbis, который его разрывает. Код выглядит так:Воспроизведение музыки PulpCore - звук цикла и живого звука

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 снова и снова в бесконечном цикле (который я могу остановить, вызвав остановку на воспроизведение объект, возвращенный из цикла(). Тем не менее, я хотел бы, чтобы музыка постепенно исчезала, поэтому, следуя советам документов API PulpCore, я добавил последнюю строку, которая создаст постепенное изменение, но музыка будет воспроизводиться только один раз, а затем остановить Интересно, почему это здесь немного документации:.?

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

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

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

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

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

примечание: мне нужно сохранить ссылку на объект воспроизведения, чтобы я мог позже убить музыку.

ответ

0

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

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

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

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

Link to this on pulpcore Google groups

+0

ЭТО МОЙ ПРИНЯТЫЙ ОТВЕТ. РЕШЕНИЕ ДЕЙСТВИТЕЛЬНО РАБОТАЕТ. Почему я не могу пометить это как принятое? (Развести руки) –

0

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

+0

даст это попробовать прямо сейчас –

+0

коммутируемой линии и до сих пор она останавливается зацикливание. 'volume.animate (0, volume.get(), fadeInDuration); currentPlayback = tracks [trackIndex] .loop (volume); ' –

0

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

+0

Я пробовал это, но не смог получить удовлетворительный результат, было небольшое отставание, которое я просто не могу принять. –