Генерируйте DTMF-сигналы

Только назвать некоторых:

  • Oracle Реальный Кластер Приложения - обеспечивает усовершенствованные кластеризирующиеся функции
  • , Oracle Data Guard - короче говоря обеспечивает физические и логические резервные функции.
  • Oracle Exadata - реализует базу данных осведомленное устройство хранения данных (который может сделать фильтрацию предиката, фильтрация проекции столбца, обработка соединения, ускоряет создание табличной области). Решение идет с серверами HP, полной 24/7 гарантией и другими хорошими вещами. Это довольно любезно для приложений с очень интенсивной загрузкой данных (например, благодаря независимому созданию табличной области).
  • Виртуализация Oracle

И конечно волшебство бренда ;)

И когда дело доходит до выбора RDBMS? Обычно выбор довольно очевиден - Oracle или остальная часть мира. После этого можно сузить выбор:

  • платформа (только для окон или не)
  • вес (sqlite, MySQL, PostgreSQL...)
  • бюджет (начальная стоимость лицензии, обслуживание + стоимость поддержки)
  • перспективы эволюции, например:
    • Экспресс Oracle-> Экспресс Oracle
    • SQL Server-> перспективы бизнеса MSSQL
  • - "безопасный, известный продукт" или продукт с открытым исходным кодом (принимают во внимание цитату вокруг первой фразы). Другое сообщение имеет тенденцию глубже изучать этот аспект.

7
задан Dutchie432 9 September 2009 в 12:51
поделиться

2 ответа

должно быть достаточно легко сгенерировать самостоятельно. учитывая, что оборудование может воспроизводить буфер pcm (16-битные выборки) на частоте 44,1 кгц (что, безусловно, может быть с какой-либо библиотечной функцией или другой), вам остается только вычислить форму сигнала:

 const int PLAYBACKFREQ = 44100;
 const float PI2 = 3.14159265359f * 2;

 void generateDTMF(short *buffer, int length, float freq1, float freq2)
 {
      int i;
      short *dest = buffer;
      for(i=0; i<length; i++)
      {
           *(dest++) = (sin(i*(PI2*(PLAYBACKFREQ/freq1))) + sin(i (PI2*(PLAYBACKFREQ/freq2)))) * 16383;
      }
 }

16383 выполнено, так как я ' m, используя аддитивный синтез (просто складывая синусоиды вместе). Следовательно, максимальный результат равен -2,0 - 2,0. Итак, после умножения на 16383 я получаю более или менее максимальный результат в 16 бит: -32768 - +32767

РЕДАКТИРОВАТЬ: 2 частоты - это частоты из статьи в Википедии, на которую ответил другой человек. Две уникальные частоты создают звук DTMF

5
ответ дан 6 December 2019 в 23:10
поделиться

Простой ответ:

soundArray = [[NSArray alloc] initWithObjects: 
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-0.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-1.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-2.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-3.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-4.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-5.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-6.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-7.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-8.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-9.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-0.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-pound.caf"] autorelease],
    [[[SoundEffect alloc] initWithContentsOfFile: @"/System/Library/Audio/UISounds/dtmf-star.caf"] autorelease],
              nil];

Вот и все. Все звуки стандартной телефонной клавиатуры в массиве, готовые для вашего удовольствия.

5
ответ дан 6 December 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: