Форум программистов, компьютерный форум, киберфорум
Наши страницы

Непрерывное воспроизведение звука из массива - Basic4Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Basic4Android Как воспроизвести потоковое видео, можно ли? http://www.cyberforum.ru/basic4android/thread1419681.html
Подскажите пожалуйста, как воспроизвести потоковое видео, какую библиотеку использовать
Basic4Android Где можно скачать библиотеки? Штука вроде не плохая, но без доп. библиотек бесполезная вещь! А где можно скачать эти библиотеки? Давайте делиться ссылками. http://www.cyberforum.ru/basic4android/thread1408933.html
Литература по Basic4Android для новичков Basic4Android
Добрый день,не подскажите ссылку на литературу Basic4Android для чайников или что-то подобное,давным давно vb5 увлекался,так простенькие программки. В поиске искал литературу ничего не нашел....
Игры для Андроид на B4A Basic4Android
Atoms, Atoms2 Скомпилированная игра в виде APK на Google play. Описание: Простая стратегическая игра в которой вы должны уничтожить противника. Каждый игрок по очереди добавляет атом в...
Basic4Android Тема закрыта? http://www.cyberforum.ru/basic4android/thread1327632.html
Заинтересовала тема по Basic4Android, но она закрыта. Причина ? Может куда переехала ? Даже зарегился ради неё ))
Basic4Android Как узнать уровень зарда батереи смартфона / планшета на Android? Как узнать уровень зарда батереи смартфона / планшета на Android? Нужна реализация для QT 5.x подробнее

Показать сообщение отдельно
lesobrod
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 1

Непрерывное воспроизведение звука из массива - Basic4Android

20.05.2015, 09:06. Просмотров 991. Ответов 0
Метки (Все метки)

Привет всем! Долго подступался к программированию для Андроид и наконец решился.
Мне нравится синтезировать звук, всякие шумы, бинауралы и т.п.
Есть классная програмка: ChromaDoze
Мне в ней не хватает возможности стохастичного, немного случайного изменения амплитуды шума (т.н. Slow Random).
Чтобы было реально как дождь, ветер или море.
Прога свободная; я предложил автору свой алгоритм для рандомизации амплитуды,
но он сказал, что недосуг.

ОК, скачал Андроид СДК, открыл Eclipse и... чётприуныл.

Через пару дней вспомнил, что в своё время программил для КПК на Basic4PPC.
Проверил, а Erel молодец! Раскрутил и для Adroid и iOS. Дороговато, правда..
Ну, нашел что надо и вперёд. За день фактически всё получилось. Проще, конечно, чем в ChromaDoze
(вместо точного спектра - фильтр с двумя движками),
но шумит правда как море =)

Однако есть вопросы. Очень надеюсь, что кто-то заинтересуется, т.к. идея довольно общая
и может быть многим полезна.

Итак, как и описано в гайде, я завёл Activity для движков и кнопок и Service для проигрывания звука в фоне.

Вопрос 1. Не знаю, куда и зачем втыкать Start/StopForeground. Я просто вызываю Service из Activity при нажатии Play.
А для восстановления Activity после ухода с неё - нотификатор.

Шум синтезируется по особому (но не очень сложному) алгоритму и попадает в массив
(скажем Record). Для воспроизведения использую библиотеку AudioTrack. Если кто с ней знаком, очень прошу откликнуться.
Т.к. даже на форуме обсуждение довольно путанное.

Вопрос 2. Как лучше организовать работу с буфером?
Пусть Sample_Rate = 22050. Звук стерео, поэтому Buffer_Size = Array_Size = 2 * 22050.
То есть в буфер пишется одна секунда звука. Соответственно, генерация массива и запись в
буфер вызывается по таймеру 1 сек. Но что-то в этом есть неправильное...
Лучше бы проверять, доигрался ли буфер и тогда сразу писать новую порцию.
Как в AudioTrack это сделать? PlayState возвращает Play всегда, пока работает аудиопоток.

Вопрос 3. Моя главная задача - получить работающий шум при том, чтобы можно было лазить по другим приложениям и даже включать другие звуковые программы.
К счастью, в принципе это возможно! Прога может играть параллельно с плеером или другой моей прогой, как и родная ChromaDoze. Но... звук прерывается. Пробовал разные размеры буфера, не помогает. Может, ОС как-то тормозит мой сервис? Возможно ли назначать приоритет процесса в Андроид?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru