Форум программистов, компьютерный форум CyberForum.ru

Java ME (J2ME)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
qqqqq1961
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 3
#1

Вывод звука на J2ME - Java ME

13.07.2014, 16:48. Просмотров 1325. Ответов 2
Метки нет (Все метки)

Пишу управлялку через аудиоканал. Источник будет универсальный - смартфон, планшет, десктоп, ноут. Мне нужно выводить на динамик тоны разной частоты (2000-4000 Гц, длительностью несколько периодов.) Пока я вывожу вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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,0x1F,0,0,0x40,0x1F,0,0,1,0,8,0,0,0,0x64,0x61,0x74,0x61,0x40,0x1F,0,0};// хедер файла для частоты дискр. 8 КГц
 
byte[]d = new byte[wav_hdr.length+100];
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 КГц (кстати, как избавиться от приведения к (byte) ?)
//Эти прямоугольные колебания становятся синусоидами после динамика.
 
// по нажатию кнопки воспроизводим аудиомассив с командами
    InputStream stream = new ByteArrayInputStream(d);
    Player player = Manager.createPlayer(stream, "audio/x-wav");
    player.start();
ЭТО РАБОТАЕТ ОТЛИЧНО (передается и принимается) для КРАТНЫХ частот, но хотелось бы для произвольных частот и не очень удобно заполнять массив, хотелось бы просто генерить в порт или проигрыватель.

Есть ли у кого пример - Как на яве синтезировать звуки?
Если скажете: "Юзай Только PlayTone", то как там вместо разных красявошных семплов сделать простые периодические сигналы (прямоугольники, треугольники или синусоиду)?
Миниатюры
Вывод звука на J2ME  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2014, 16:48     Вывод звука на J2ME
Посмотрите здесь:

PUSH технология на J2ME - Java ME
Народ, я модерирую сайт, реально ли написать на java (именно java 2 me) такую программу, запуская которую на телефоне, мы авторизовались бы...

переход от java к j2me - Java ME
я знаю яву и хочу попробывать себя в програмировании для телефонов но не иемю ни малейшего представления о j2me может подскажите какую...

Фоновый приложения J2ME - Java ME
Есть ли способ выполнения java-приложений без отображения их на дисплеи портативных устройств(простой пример – будильник на Яве:))? Если...

Работа с текстом в J2ME - Java ME
Если кому не в лом, помогите плз. Вопрос вот в чем: есть строка типа String, нада узнать какой длинны она будет после вывода через метод...

J2ME загрузка файлов ресурсов - Java ME
Помогите плиз. Пробую писать мидлет в EclipseMe по книжке (должен отображать картинку): import javax.microedition.midlet.MIDlet; ...

Как вы считаете, J2ME вымирает? - Java ME
Раньше все телефоны были оснащены данной виртуальной машиной, а теперь с ростом числа смартов при одновременном падении числа обычных...

Как добраться до hel*p-а у J2ME? - Java ME
Набирая простой код в NetBeans увидел выпадающий список методов и свойств. А вот как до него добраться через клавиши? Не набирать же каждый...

Как получить J2ME в Eclipse? - Java ME
Знаю что можно (EclipseME, например), но КАК? (Если не затруднит, по шагам, пожалуйста; ведь в NetBeans c полпинка запускается, а здесь...

Перевод j2me в delphi или C# - Java ME
Всем ку, возникла такая нужда перевода кода в delphi или же в C# из j2me Нужна функция для генерации хэша, от одного чата :) Кто может...

Анти-флуд на Java ME (J2ME) - Java ME
Доброго времени суток. Прошу помочь. Имею ICQ-чат, его флудят вторые сутки, невыносимо. Помогите с идеей написания анти-флуда. Если...

Запуск библиотеки ZXing на j2me - Java ME
Вообщем проблема такая как использовать библиотеку java se на java me? P.S. кому интересно это библиотека для QR кодов.

Maximum count of character in J2ME - Java ME
Privet vsem I declared 28 String array and all character count in all arrays is 48 000 (which I copy from my file and counted it in...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diamagnet81
1 / 1 / 0
Регистрация: 15.08.2014
Сообщений: 5
16.08.2014, 21:18     Вывод звука на J2ME #2
Из одной книжки, глава Синтаксис и семантика языка Java 2 ME:
...значение от -128 до 128 127
И частоты звука - это скорее в характере самого звука, не в характере витиеватости каждого тела цикла.
Можно байт за байтом сохранять склоны и пики синусоид любой частоты.

Java
1
2
3
4
5
6
7
8
byte[] 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,0x1F,0,0,0x40,0x1F,0,0,1,0,8,0,0,0,0x64,0x61,0x74,0x61,0x40,0x1F,0,0};// хедер файла для частоты дискр. 8 КГц
 
byte[]d = new byte[wav_hdr.length+100];
int n=46;// длина аудиохедера
if (n == wav_hdr.length) System.out.println("true he-he");
for (int i = 0; i < wav_hdr.length; i++) d[i] = wav_hdr[i];
for (int i = 0; i < d.length - wav_hdr.length; i++)
    d[i + wav_hdr.length] = (byte) (-128 * java.lang.Math.sin(java.lang.Math.PI * anyFloatLesserThanOneForLongerPeriods / 2));
diamagnet81
1 / 1 / 0
Регистрация: 15.08.2014
Сообщений: 5
09.09.2014, 15:03     Вывод звука на J2ME #3
Java
1
(byte)(127.0 - 126.5 * Math.sin(2.0 * Math.PI * frequ_ * i / sampleRate));
Yandex
Объявления
09.09.2014, 15:03     Вывод звука на J2ME
Ответ Создать тему
Опции темы

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