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

Basic4Android

Войти
Регистрация
Восстановить пароль
 
lesobrod
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 1
#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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2015, 09:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непрерывное воспроизведение звука из массива (Basic4Android):

Воспроизведение звука (ничего не получается) - Программирование Android
Доброго времени суток! Не могу заставить воспроизвести звук... перепробовал сотни вариантов... вот самый простой: 1. Закинул в папку...

Реализовать воспроизведение звука при каждом показе сообщения - Программирование Android
Всем привет) Возник такой вопрос в ходе программирования будильника, есть следующий код с использованием BroadcastReceiver. ...

Непрерывное воспроизведение аудио - Matlab
Здравствуйте! Я хочу сделать так, чтобы аудио воспроизводилось непрерывно, но у меня не всё получается, поэтому хочу тут спросить. У меня...

Воспроизведение звука - Lazarus
Есть функция PlaySound. Во время ее работы на форме сделать ничего нельзя. Нужно же,чтобы во время воспроизведения звука была возможность...

Воспроизведение звука - Lazarus
В продолжение предыдущей темы =) Берется строка, просматривается посимвольно, и каждый символ озвучивается Вот кусок процедуры: ...

Qt 5.1.1 воспроизведение звука - C++ Qt
Подскажите какой нибудь способ воспроизведение аудио с использованием ресурсов Qt 5.1.1 minGW 32bit windows 8.1 64bit

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2015, 09:06
Привет! Вот еще темы с ответами:

Воспроизведение звука - XNA
Не могу понять, как правильно воспроизводить звук. Нагуглил вот это: SoundEffect SndKasar; В методе LoadContent(): SndKasar =...

Воспроизведение звука - Delphi
ИМееться ссылка на песню, скажем http://сайт//Песня.mp3 Можно ли по такой ссылке воспроизвести эту песню ? Я подумывал , что можно...

Воспроизведение звука - Delphi
Добрый вечер :) Пояснение: Я хочу сделать что-то вроде пианино на клавиатуре(примитивное). Я загнал в файл ресурсов несколько WAV...

Воспроизведение звука - Assembler
Задача воспроизводит звук SST SEGMENT STACK "STACK" dw 10 SST ENDS DAT SEGMENT DAT ENDS COD SEGMENT assume ss:sst, ds:dat,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru