Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Мобильные платформы > J2ME
Перезагрузить страницу Вывод байтов на динамик
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
qqqq1961 qqqq1961 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.12.2013
По умолчанию Вывод байтов на динамик - 08.12.2013, 15:30

Уважаемые, подскажите пожалуйста, как из массива вывести байты на CreatePlayer (с нужными параметрами дискретизации).
Нашел только пример вывода из файла, переделал (пишу свои байты на лету в потоке), но это некорректно и есть недостатки.
Миниатюры
auaiae-4_aaeoa-dhaaioaao.jpg  
Ответить с цитированием
  (#2 (permalink)) Старый
qqqq1961 qqqq1961 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.12.2013
По умолчанию 08.12.2013, 23:20

Решение найдено!
int[] wav_hdr = 0x52,0x49,0x46,0x46,0xC6,0x0F,0,0,0x57,0x41,0x56,0 x45,0x66,0x6D,0x74,0x20,0x12,0,0,0,1,0,1,0,0x40,0x 1F,0,0,0x40,0x1F,0,0,1,0,8,0,0,0,0x64,0x61,0x74,0x 61,0xA0,0x0F,0,0};\\ wav header
byte[] adata = new byte[wav_hdr.length+4000];
for(int i=0; i<wav_hdr.length; i++){ adata[i] = (byte)wav_hdr[i];}
Player player = Manager.createPlayer(new ByteArrayInputStream(adata), "audio/x-wav");
player.start();
Ответить с цитированием
  (#3 (permalink)) Старый
qqqqq1961 qqqqq1961 вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.07.2014
По умолчанию 13.07.2014, 17:06

Кто знает J2ME ? Отзовитесь пожалуйста!!!
Мне нужно выводить на динамик тоны разной частоты (2000-4000 Гц, длительностью несколько периодов.)
Пока я вывожу вот так:
int[] wav_hdr = {0x52,0x49,0x46,0x46,0x66,0x1F,0,0,0x57,0x41,0x56, 0x45,0x66,0x6D,0x74,0x20,0x12,0,0,0,1,0,1,0,0x40,0 x1F,0,0,0x40,0x1F,0,0,1,0,8,0,0,0,0x64,0x61,0x74,0 x61,0x40,0x1F,0,0};\\ хедер файла для частоты дискр. 8 КГц

byte[]d = new byte[wav_hdr.length+10000];
int n=46;// длина аудиохедера
\\ пишем в массив будущий семпл
for(int i=0;i<15;i++){d[n++]=0; d[n++]=(byte)255;}\\ 4 КГц
for(int i=0;i<8;i++){d[n++]=0;d[n++]=0; d[n++]=(byte)255;d[n++]=(byte)255;} \\ 2 КГц
\\ воспроизводим массив
InputStream stream = new ByteArrayInputStream(d);
Player player = Manager.createPlayer(stream, "audio/x-wav");
player.start();

Это работает отлично для кратных частот, но хотелось бы для произвольных частот. Есть ли у кого пример - Как на яве синтезировать звуки? PlayTone неудобен.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить основной динамик на планшете lucsal Любые вопросы от новичков 0 25.12.2011 15:05
Динамик на материнской плате. 2 сигнала. Moonstrider Любые вопросы от новичков 4 03.11.2011 20:38
Трещит динамик при подключению к интернету через модем. Drive777 Любые вопросы от новичков 19 18.03.2010 16:39
(Москва)Куплю динамик от любого телефона Black Parrot. Куплю 1 18.12.2008 17:11
Динамик Герка Моддинг 4 31.08.2008 19:54
Музика через динамик misterloko Звук и акустические системы 8 28.08.2008 02:29
При включении компьютера пищит системный динамик. shurc Техническая поддержка 1 07.08.2007 15:47
Системный динамик в Win98 Crave Visual C++ 1 26.06.2006 10:27
Сколько байтов в килобайте Зирк Мысли вслух 22 03.11.2005 00:14
Проверка на чётность байтов Poker С/С++ 2 05.07.2005 08:25
Функция преобразования 4 байтов в single RuslanByo Delphi 0 11.06.2004 19:58
Как послать сигнал на встроенный динамик материнской платы Anonymous Visual C++ 2 18.08.2003 19:57



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов