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

Генератор звука нужной частоты - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как перекинуть акк(уч.запись майкрософт) с андройд на комп вин10 http://www.cyberforum.ru/android-dev/thread1803834.html
ребят у меня такой вопрос играю в игру марш престолов(уч.запись майкрософт) на андройде, хочу перенести свой акк на комп вин10, как это сделать подскажите пожалуйста Добавлено через 29 минут...
Программирование Android Акселерометр и ускорение земного притяжения Видно у меня совсем плохо с физикой , но я совершенно не понимаю документацию по SENSOR EVENT of Accelerometer. Дело в том, что моя программа стирает изображение , когда пользователь встряхивает... http://www.cyberforum.ru/android-dev/thread1803794.html
Программирование Android SeekBar и Arduino
Здравствуйте! Помогите реализовать:при нажатии кнопки происходит передача значений ползунков ардуине ,значения те которые выставлены в seekBar.
Выдать напряжение с телефона Программирование Android
Есть смартфон на андроид и шнур к нему... Можно ли через приложение, подавать кратковременно напряжение на шнур. Мол как сигнал... Шнур можно обрезать или подключить разъем usb к нему, а далее от...
Программирование Android Конструктор форм http://www.cyberforum.ru/android-dev/thread1803508.html
Всем доброго времени суток. Очень давно не касался программирования вообще, тут решил поковыряться... Хочу побаловаться для андройд... Подскажите пожалуйста, есть ли такая IDE, где днищу будет...
Программирование Android Приложение не запускается на Android 5.1 и выше Сделал приложение в Android Studio на API 21. Начал тестить на устройстве. На версии Android 5.0 всё работает отлично, а на версиях Android 5.1 и выше приложение закрывается сразу после запуска. Как... подробнее

Показать сообщение отдельно
gvsp
14 / 3 / 0
Регистрация: 10.11.2015
Сообщений: 71
12.09.2016, 16:20  [ТС]
vxg, Спасибо попробую. К сожалению использовать готовые файлы не очень удобно, нужно иметь возможность регулировать в неких пределах частоту и длительность. Конечно, если не получится с генератором, то придётся задать фиксированные выборы из нескольких файлов. Но есть куча приложений для морзянки с выбором частоы и длительности и с идеальным звучанием. Например (не знаю можно ли тут давать ссылки, если что просьба не банить) Morse app К сожалению нет ни одного хорошего приложения именно для обучения, поэтому решил написать сам, благо ничего сложного то там нет.

Добавлено через 4 часа 15 минут
vxg, извините, что надоедаю. Примерно так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Создадим такой же генератор, как сейчас:
// Генератор звука
    private AudioTrack generateTone(double freqHz, int durationMs)
    {
        int sampleRate = 48000;z
        int count = (int)( sampleRate * 2.0 * (durationMs / 1000.0)) & ~1;
        short[] samples = new short[count];
        for(int i = 0; i < count; i += 2){
            short sample = (short)(Math.sin(2 * Math.PI * i / (sampleRate / freqHz)) * 0x7FFF);
            samples[i + 0] = sample;
        }
        AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate,
                AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT,
                count * (Short.SIZE / 8), AudioTrack.MODE_STATIC);
        track.write(samples, 0, count);
        return track;
    }
 
// Вызовем его сразу же, с нулевой частотой и длительностью, чтоб не загудел:
AudioTrack at = generateTone(0, 0); // freqHz, durationMs
            at.play();
 
 
// Данные samples и count просчитываем заранее:
 int sampleRate = 48000;
        int count = (int)( sampleRate * 2.0 * (durationMs / 1000.0)) & ~1;
        short[] samples = new short[count];
        for(int i = 0; i < count; i += 2){
            short sample = (short)(Math.sin(2 * Math.PI * i / (sampleRate / freqHz)) * 0x7FFF);
            samples[i + 0] = sample;
 
// И пишем данные вызывая звук, например по кнопке:
public void onClickTestSound(View view) {
track.write(samples, 0, count);
    }
 
// При выходе из активности убиваем, ибо практика показывает, что сам не умирает
try {
            track.pause();
        } catch (IllegalStateException e) {
        }
        track.flush();
        track.release();
        track = null;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru