Pull to refresh

Comments 19

Я знаю, что вы сейчас сидите и обновляете каждую минуту комментарии, потому без зазрения совести поставлю заслуженный плюс за саморазвитие и желание идти до конца. Так держать!
UFO just landed and posted this here
UFO just landed and posted this here
На гитхабе есть ссылка для скачивания;-)
UFO just landed and posted this here
Если в статью вставить ссылку, то отправят в read-only. В прошлой статье она была, вставил по неопытности
Не совсем понятно почему — проект же опенсоурсный.
Чем мешает прямая ссылка на apk?
Восхищаюсь такими людьми. Сразу в голову лезет " я бы не смог ". Ну конечно смог бы, но это не важно т.к. не стал бы. Но такие статьи вдохновляют. Пойду на праздниках тоже что-нибудь покодю обязательно. Спасибо!
Я рад, что кого-то вдохновил, значит время на статью потрачено не зря. Спасибо за отзыв!
У вас есть стейт машина? А сколько у нее состояний, для нее они абстракты или типизированы?
Машиной состояний (StateMachine) я назвал абстрактный ДКА. Остальные классы, реализующие этот интерфейс, внутри устроены как ДКА, с разными количествами состояний — у каждого из них состояния свои.
Всё же, лучше было бы OpenAL использовать. Он и красивее, и вроде как нету недостатков некоторых, которые есть в OpenSL ES.
Вот только при работе с OpenAL мы столкнулись с тем, что на некоторых устройствах бывают задержки при воспроизведении )=
В OpenSL ES, как я понимаю, такой проблемы не встретили?
Да, теперь уже есть такие мысли, что лучше было OpenAL использовать — он и поддерживается многими платформами, можно рассчитывать на кроссплатформенность реализации.
Единственная проблема была в задержке при зацикливании музыки. Так и не победил это. Тестировал на десятке устройств, примерно.
По прошествии времени, вынужден признать, что OpenSL на Android лучше, чем OpenAL.

В нашей новой игре очень многое зависит от звуков. Их много и часто необходимо их проигрывать. С OpenAL были частые задержки перед проигрыванием, порой до 0.5 секунд.

С OpenSL всё работает куда лучше. Пришлось всё с OpenAL переписывать на OpenSL, но оно того стоило)
А с проблемой задержки при зацикливании треков решили что-нибудь? Или такого в проекте нет?
Пока без зацикливания решили делать. Но есть огромная проблема по сравнению с OpenAL.
Если в OpenAL pause, stop и прочие методы вешаются на сорс, то в OpenSL они вешаются на плейер.

К тому же в OpenSL надо заранее задавать формат буфера. Так что, если у вас wav файлы разного формата (разная частота, количество каналов и т.д.), то при попытке их поставить в очередь в один плейер, приложение упадёт.

Динамически поменять формат плейера тоже нельзя. Приходится создавать плейер на каждый формат.

А если в игре 50+ звуков, многие из которых могут играть параллельно, надо около 5-8 плейеров. Если ещё брать в расчёт различность форматов (3-4 формата), то надо перемножить… Итого надо более 20 плейеров.

А их число ограничено. Если превысите максимально возможное число, приложение упадёт.
Sign up to leave a comment.

Articles