Всем привет.
Имеется игра, написана она почти полностью на c++, за исключением пары оберток на яве для отловли касания и ренднра ogl. Теперь захотелось добавить различных звуковых эффектов и музыки. Через что это можно сделать с наименьшими телодвижениями? Или есть у кого примеры кода?
толком сам ничего не смог нагуглить
OpenAL? Погугли по нему. В принципе всё необходимое в нём есть, а при усилиях и немного больше.
G@sh!sh
Если тебе и правда захотелось подключить себе OpenAL, тогда Лови.
А так... в NDK ведь уже есть OpenSL.
Примеры OpenSL есть у самого NDK, а примеры OpenAL есть по той же ссылке. Use it well ;)
спасибо. буду гуглить/разбираться. а то особо и не знал в какую сторону искать
OpenAL + libogg/libvorbis + libmodplug
Очень здорово работает на андроиде (да и других платформах). Добавлю ещё ссылку: www.linderdaum.com - там сырцы есть и конфиги для сборки.
Вопрос из разряда философских для людей с опытом: стоит ли вообще работать со звуком в NDK, когда есть SoundPool и MediaPlayer?
NDK+OpenAL(by backend opensl)
Любое принятое решение должно быть технически обосновано. Основания же, в зависимости от целей, могут быть самыми разными. От желания "сделать своими руками", или стремления саморазвития, до рамок уже введенного функционала проекта и потребности "поддержать" этот функционал и под андроидом.
Результат всегда будет один. Это одна из "темных сторон" оси, которые мне кардинально не нравятся. Даже если реализуешь звук через штатный OpenSL, его вызовы все равно сперва протянутся на сторону явы к классам явы, а потом уже от них снова на низкий уровень в сторону ядра и драйверов звука. То есть, тропинка будет всегда через одно место - через яву. :)
Я ввел поддержку OpenAL с драйвером девайса на стороне явы. Для меня это решение было самым практичным потому что у меня уже тонна кода на OpenAL базируется. :)
OpenAL (by backend opensl), работает нативно, не через какую яву вызовов нет. Но поддержка OpenSL идет начиная с android-9 (2.3). Если нужна поддержка более ранних версий андроида, то есть реализация OpenAL через через JNI на AudioTrack.
Работать со звуком из NDK имеет смысл, если приложение уже написано на С++ или хочется использовать кроссплатформенное решение
Stain
> Любое принятое решение должно быть технически обосновано. Основания же, в
> зависимости от целей, могут быть самыми разными. От желания "сделать своими
> руками", или стремления саморазвития, до рамок уже введенного функционала
> проекта и потребности "поддержать" этот функционал и под андроидом.
> Результат всегда будет один. Это одна из "темных сторон" оси, которые мне
> кардинально не нравятся. Даже если реализуешь звук через штатный OpenSL, его
> вызовы все равно сперва протянутся на сторону явы к классам явы, а потом уже от
> них снова на низкий уровень в сторону ядра и драйверов звука. То есть, тропинка
> будет всегда через одно место - через яву. :)
> Я ввел поддержку OpenAL с драйвером девайса на стороне явы. Для меня это
> решение было самым практичным потому что у меня уже тонна кода на OpenAL
> базируется
ReeV
Сорри, не понял сути ссылки рядом с цитатой моего текста. Расскажи его пожалуйста словами.
Тема в архиве.