Расширение

В последней версии народ из NME сделал поддержку динамической генерации аудио на SDL
(для Windows, Mac, Linux, webOS and BlackBerry)

А я вот тем временем досляпал подобное расширение для Android...
В целом, на моем телефоне работоспособно, если кто возьмется проверить буду признателен.

https://github.com/scythianfuego/nme-android-dynamicsound

Негативные комментарии привествуются.

Комментарии

Текущее

Текущее состояние дел:

Заимел на пару часов Acer Liquid, потом еще возьму.
- у Liquid минимальный буфер неразумного размера - 768 байт (!), это вызывает необходимость генерировать данные для него ~60 раз в секунду
- телефон банально не успевает это делать
- у меня где-то ошибка в синхронизации тредов, при большом отставании генератора от плеера один из них крашится (поэтому дальше звука нет)
- android.permission.MODIFY_AUDIO_SETTINGS на суть дела не влияет, вероятно ошибка API производителя и требоваться не должно, но дополнительно сильно тормозит момент начала воспроизведения. Если добавить его в шаблон манифеста, то работает лучше. Но все равно крашится из-за пунктов выше. Буду копать дальше.

установил apk

установил apk на свой Acer (2.2)
стартует нормально, на тап выдает звук напоминающий треск и на второй тап уже не реагирует. вылетает через пару секунд
в logcat следующeе:

05-05 11:57:42.270: E/GameActivity(25064): getResource:java.io.FileNotFoundException: _sans
05-05 11:57:46.170: W/ServiceManager(64): Permission failure: android.permission.MODIFY_AUDIO_SETTINGS from uid=10084 pid=25064
05-05 11:57:46.170: E/AudioFlinger(64): Request requires android.permission.MODIFY_AUDIO_SETTINGS
05-05 11:57:46.180: W/ServiceManager(64): Permission failure: android.permission.MODIFY_AUDIO_SETTINGS from uid=10084 pid=25064
05-05 11:57:46.180: E/AudioFlinger(64): Request requires android.permission.MODIFY_AUDIO_SETTINGS
05-05 11:57:46.380: W/AudioFlinger(64): write blocked for 196 msecs, 3862 delayed writes, thread 0xb460
05-05 11:57:53.210: W/InputManagerService(121): Got RemoteException sending setActive(false) notification to pid 25064 uid 10084

первое понятно, это просто шрифт, на работу оно не влияет
далее разрешения, а вот что там с последними двумя warning'ами, не в курсе.

шрифт это

шрифт это обычное сообщение от nme, нормально
а вот второе плохо, спасибо, сейчас попробую разобраться
там возникает строчка NME DynamicSound(32297): Priority set to -16 ?

Все

Все сложно)

Разрешение MODIFY_AUDIO_SETTINGS могут требовать разве что фукнции AudioPolicyService::initStreamVolume или AudioPolicyService::setStreamVolumeIndex, я громкость нигде напрямую не задаю - возможно что-то вызывается косвенно.
На дальнейшую работоспособность влиять не должно.

write blocked и последующий exception - это либо упавший тред генератора (маловероятно), либо тред генератора, не успевающий создавать данные... вот это будет грустно.

Юрий, если не затруднит, попробуйте вот эту апкшку (в ней увеличен буфер) и скажите когда в логе (инфо) появляются эти строчки относительно ко времени приведенных вами ошибок:
NME DynamicSound: Priority set to -16
NME DynamicSound: Stream type is 3

У меня из ошибок оно еще регулярно пишет AudioPolicyManagerBase unknown stream type - но на это похоже не стоит обращать внимание.

примерно

примерно так:

05-05 19:41:04.643: W/ServiceManager(64): Permission failure: android.permission.MODIFY_AUDIO_SETTINGS from uid=10084 pid=26319
05-05 19:41:04.643: E/AudioFlinger(64): Request requires android.permission.MODIFY_AUDIO_SETTINGS
05-05 19:41:04.643: I/NME DynamicSound(26319): Stream type is 3
05-05 19:41:04.653: I/NME DynamicSound(26319): Priority set to -16
05-05 19:41:04.673: W/ServiceManager(64): Permission failure: android.permission.MODIFY_AUDIO_SETTINGS from uid=10084 pid=26319
05-05 19:41:04.673: E/AudioFlinger(64): Request requires android.permission.MODIFY_AUDIO_SETTINGS
05-05 19:41:04.853: W/AudioFlinger(64): write blocked for 181 msecs, 3938 delayed writes, thread 0xb460

сейчас, видимо из-за увеличения буфера, стало вылетать не после каждого нажатия, а только после длинных. если совсем коротко тапать, то удается издать несколько разных звуков.
Вот развернутый лог гибели приложения после чуть более долгого нажатия: http://pastebin.com/uTPFhVDB

знакомый лог,

знакомый лог, сегфолт из-за тормозов
ладно, спасибо, пока еще подумаю

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Use [gist:####] where #### is your gist number to embed the gist.

Подробнее о форматировании

CAPTCHA
Для отсева спамеров)
H
c
L
P
L
P
Enter the code without spaces and pay attention to upper/lower case.