Войти
Мобильные платформыФорумОбщее

Воспроизведение музыки в native [Android]

#0
16:06, 20 июня 2012

Всем привет.
Имеется игра, написана она почти полностью на c++, за исключением пары оберток на яве для отловли касания и ренднра ogl. Теперь захотелось добавить различных звуковых эффектов и музыки. Через что это можно сделать с наименьшими телодвижениями? Или есть у кого примеры кода?
толком сам ничего не смог нагуглить


#1
23:09, 20 июня 2012

OpenAL? Погугли по нему. В принципе всё необходимое в нём есть, а при усилиях и немного больше.

#2
7:50, 21 июня 2012

G@sh!sh
Если тебе и правда захотелось подключить себе OpenAL, тогда Лови.
А так... в NDK ведь уже есть OpenSL.
Примеры OpenSL есть у самого NDK, а примеры OpenAL есть по той же ссылке. Use it well ;)

#3
15:21, 21 июня 2012

спасибо. буду гуглить/разбираться. а то особо и не знал в какую сторону искать

#4
2:50, 22 июня 2012

OpenAL + libogg/libvorbis + libmodplug
Очень здорово работает на андроиде (да и других платформах). Добавлю ещё ссылку: www.linderdaum.com - там сырцы есть и конфиги для сборки.

#5
9:34, 17 июля 2012

Вопрос из разряда философских для людей с опытом: стоит ли вообще работать со звуком в NDK, когда есть SoundPool и MediaPlayer?

#6
23:50, 17 июля 2012

NDK+OpenAL(by backend opensl)

#7
18:11, 19 июля 2012

Любое принятое решение должно быть технически обосновано. Основания же, в зависимости от целей, могут быть самыми разными. От желания "сделать своими руками", или стремления саморазвития, до рамок уже введенного функционала проекта и потребности "поддержать" этот функционал и под андроидом.
Результат всегда будет один. Это одна из "темных сторон" оси, которые мне кардинально не нравятся. Даже если реализуешь звук через штатный OpenSL, его вызовы все равно сперва протянутся на сторону явы к классам явы, а потом уже от них снова на низкий уровень в сторону ядра и драйверов звука. То есть, тропинка будет всегда через одно место - через яву. :)

Я ввел поддержку OpenAL с драйвером девайса на стороне явы. Для меня это решение было самым практичным потому что у меня уже тонна кода на OpenAL базируется. :)

#8
10:40, 21 июля 2012

  OpenAL (by backend opensl), работает нативно, не через какую яву вызовов нет. Но поддержка OpenSL идет начиная с android-9 (2.3). Если нужна поддержка более ранних версий андроида, то есть реализация OpenAL через через JNI на AudioTrack.
  Работать со звуком из NDK имеет смысл, если приложение уже написано на С++ или хочется использовать кроссплатформенное решение

#9
12:07, 22 июля 2012

Stain
> Любое принятое решение должно быть технически обосновано. Основания же, в
> зависимости от целей, могут быть самыми разными. От желания "сделать своими
> руками", или стремления саморазвития, до рамок уже введенного функционала
> проекта и потребности "поддержать" этот функционал и под андроидом.
> Результат всегда будет один. Это одна из "темных сторон" оси, которые мне
> кардинально не нравятся. Даже если реализуешь звук через штатный OpenSL, его
> вызовы все равно сперва протянутся на сторону явы к классам явы, а потом уже от
> них снова на низкий уровень в сторону ядра и драйверов звука. То есть, тропинка
> будет всегда через одно место - через яву. :)
> Я ввел поддержку OpenAL с драйвером девайса на стороне явы. Для меня это
> решение было самым практичным потому что у меня уже тонна кода на OpenAL
> базируется

http://ru.wikipedia.org/wiki/Dalvik_virtual_machine

#10
22:22, 22 июля 2012

ReeV
Сорри, не понял сути ссылки рядом с цитатой моего текста. Расскажи его пожалуйста словами.

Мобильные платформыФорумОбщее

Тема в архиве.