|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
Ну т.е. мне надо: 1) Длинный непрерывный гудок (трубка снята) 2) Длинные гудки (ожидание ответа) 3) Короткие гудки 4) Сигналы DTMF 5) Ну сигнал вх. вызова соответственно (звуковой файл, либо генератор чего либо) В принципе это все "рюшечки" и для функциональности приложения не надо ибо opal.dll все и так делает, но есть частные случаи. Если идет вызов и есть "early media" (голосовой кодек на этапе Ringing), то user слушает родные длинные гудки из линии, если media включается только при ответе, то до снятия трубки на том конце user слушает тишину. "Busy" (Короткие гудки) и длинный гудок вообще не предусмотрены. DTMF отправляется в сторону удаленного абонента, но надо б продублировать в динамик. Вх. "звонок" тоже на совести App ну и т.п. Т.е. в ряде случаев всю эту "полифонию" должно генерировать App. Ну понятно, что тона в разных странах разные, но это думаю можно легко додумать. Поскольку недавно занимался миксерами volume/mute, так понимаю, надо использовать: Windows Multimedia API (XP/2003) Core Audio APIs (Vista/Win7/2008) <<< это если по-хорошему Есть еще всякие Direct Sound-ы, но думаю это не тот путь. С последними на VB6 примеры я чет не рассчитываю, а вот с первым думаю они где-то есть. Не подтолкнет меня кто в правильном направлении? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 02:04 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
А так не подойдёт? Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2012, 17:57 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
vasatkaА так не подойдёт? Код: vbnet 1.
Ну, Beep выводит звук в системный динамик, а не в заданное звуковое устройство. Мне нужно не простота, а качество. PlaySound тоже кстати использовать не хочу. Пока сделал проигрывание wav файла через Windows Multimedia API (тестовый проект во вложении). 1) Тупо открываем wav файл: Код: vbnet 1.
читаем его формат и 2) с этим wav форматом открываем канал Player: Код: vbnet 1.
3) Дальше используя 5 буферов и Callback гоним туда потоковое Audio Код: vbnet 1. 2.
4) Если хотим сделать Stop, то Код: vbnet 1. 2. 3. 4. 5. 6.
5) если хотим гонять файл по кругу, то после последнего блока данных тупо переводим курсор на начало WAV не останавливая потока: Код: vbnet 1.
По поводу пункта (5) честно думаю как сделать возможность Delay, т.е. файл проигрался, потом ждем напр. Delay=2сек, потом повторяем. Потому как в примере звонка(во вложенном файле) пришлось дописывать в wav 2 сек. тишины. Но думаю самое простое, делать Stop и перезапускать wav-канал вместе с wav-файлом по тику таймера через эти 2 сек. Делать всякие Sleep при открытом канале я наверно не рискну. Буду смотреть уже в реальном приложении что лучше. Дублировать воспроизведение через CoreAudio не уверен что надо, в принципе на 7-ке "старый код" работает, надо тестировать. С миксерами на вистах просто было много нелечимых глюков. По поводу DTMF и гудков надо смотреть. Нашел пока "генератор пилы" (пилит): http://bit.pirit.info/forum/viewtopic.php?p=67598 посмотрю насколько это поможет. Думаю сначала понять как делать DTMF, гудки по сути это тоже самое (частота, длительность и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 00:12 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
По сути вот: http://idialer-wm.googlecode.com/svn-history/r2/trunk/iDialer/SoundUtils.cpp или тут http://msdn.microsoft.com/en-us/subscriptions/ms894872.aspx Код: plaintext 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.
Да и код шибко тяжелым не выглядит (на первый взгляд), но смущают UINT32 в MIDI-структурах, а поиск с тегом VB6 ничего не дал. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 02:34 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
Короче через Windows Multimedia API доделал, кому интересно во вложении. Вот отсюда взял модуль DTMF генератора. https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=64048&lngWId=1 Основная идея, что записывается wav файл двухчастотного сигнала заданной длины. Только файл на диск не пишется, а сохраняется в памяти. Код: vbnet 1. 2.
меня не устроило, поэтому сделал: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Т.е. читаю memory file WAV, байтовый массив WavArray() с фрагментом звука. Для телефонных сигналов генерируется wav-фрагмент гудка (2-частотные сигналы для США и одночастотный 425гц для РФ), этот фрагмент через требуемую паузу (а для длинного гудка непрерывным потоком) воспроизводится. Требуемый промежуток тишины делаю через тик таймера. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 02:05 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
Привет, по моему проще было заготовить нужные wav'ки, при запуске программы вычитывать их в память, и при необходимости - подсовывать на воспроизведение. Собственно говоря в 2000-ных так и было реализовано в нескольких телефонных комплексах, которые я смотрел. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 08:57 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
Игорь Горбонос, а разве плохо сделал? Для тональных сигналов я использую один "плавающий массив". А пользовательские wav типа "звонок" (мож юзер туда полифонию от Nokia засунет) пусть с диска читает. А держать в памяти кучу массивов, да ну. Я довольно долго боролся с чтением "memory file" через mmioOpen, но сделал же. Уже хотел было сигналы в реальные wav-ы засунуть. Хорошо б конечно в класс оформить (да не люблю я их), потому как в моем варианте одновременно может воспроизводиться только один wav. В приложение вставил, в целом устраивает. Накладывать звуки друг на друга думаю не надо. Напр. пришлось запретить воспроизводить DTMF при нажатии на клавишу, если идет сигнал вызова и т.п. Но с другой стороны я всегда делаю в нужные моменты stop_wav независимо от того, что там играется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 15:53 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
А нет ли у кого: 1) приличный набор wav рингтонов -когда телефон звонит (Ring...Ring, а не фигня какая-нибудь). 2) опять же приличный набор для использования как MusicOnHold Для MusicOnHold желательно WAV 128кбит/сек 16 бит моно 8кГц PCM. (это для проигрывания в телефонную линию -поэтому с форматом ограничение, код типа того что я здесь нарисовал (Windows Multimedia API), но C-шный встроенный в Opal/ptlib) Для Ring-Ring WAV -но подробности особой роли не играют, для проигрывания VB-кодом как в приложенном примере. Я через Google пытался найти, но к сожалению по такому запросу в основном сайты с вирусами, порнушкой и сомнительными предложениями отправить SMS на мобильник. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 05:18 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 21:17 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
vasatka, спасибо В принципе с рингтонами как бы проблем нет. Например на http://soundjax.com http://www.freesound.org/ и им подобным еще много можно найти. Через звуковую карту собственной прогой выше все играется замечательно, в каком бы формате WAV оно не было. А вот с MusicOnHold я что-то не догоняю какой-то истины. Используется IVR из OPAL, по сути там те же самые Windows Multimedia API. Например 1. скачиваю отсюда http://www.starface.de/de/Downloads/moh.php 2. конвертирую стандартной прогой Пуск->Программы->Стандартные->Развлечения->Звукозапись (на XP) Opal позволяет следующие форматы WAV: 128кбит/сек 16бит моно 8кГц PCM 64кбит/сек 8бит моно 8кГц PCM Вопрос: разница есть? Чего лучше использовать? первый места больше занимает, а в 711 кодек ведь все одно больше чем 64кбит/сек не влезет. 3. Идем дальше. Если делаю звонок по локалке на SIP девайс, то что-то уж сильно громко играет. Или у меня девайс фигово настроен? Звоню через SIP провайдера на МГТС - ну вроде не так громко. Пытался "уменьшать громкость файла" через ту же "Звукозапись" -особо не влияет, кажется только качество поганится. Вопрос: Что с громкостью файлов MusicOnHold должно быть? А например хочу изготовить файл MusicOnHold сам. Скачиваю мелодию, чудесно: фортепьяно, скрипка. Обычно все это в mp3. Ну, иду сюда: http://media.io/ru/ Конвертирую в wav -типа делает качественный эдак на 20-40 мегабайт, если 3-4 минуты, ну звучит (на компе) не хуже mp3. Потом через "Звукозапись" делаю нужный формат как выше, получается эдак на 2-4МБ. Но фигня в том что в большинстве случаев скрипки хрипят, пианины ездят по ушам и в телефоне все звучит не есть гуд. Вопрос: Как вообще эти штуки готовить? Короче просьба поделиться опытом, если у кого есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 04:15 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
Сделайте сначала из исходника файл с помощью нормального звуко-редактора (SoundForge, например), нормализуя уровень, накладывая фильтры... Затем уже сохраните в нужном формате (для телефонки вообще можно использовать, например, ADPCM 8 кГц) - как обычный wav. Ну и пользуйте... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 05:05 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
AndreTM, Честно говоря неохота на этом зацикливаться. От проги собственно требуется проиграть файл в линию, она это делает, а прогу еще писать и писать. Вот нашел еще 3 штуки готовых в CCITT-ulaw: https://support.nextiva.com/index.php?_m=downloads&_a=view&parentcategoryid=1&pcid=0&nav=0 С громкостью и нежелательными хрипами все нормально, но кстати обратил внимание что они сами по себе "очень тихие" в отличии от файлов по ссылке выше на starface. AndreTMСделайте сначала из исходника файл с помощью нормального звуко-редактора (SoundForge, например), нормализуя уровень, накладывая фильтры... Затем уже сохраните в нужном формате Позже м.б. поэкспериментирую, когда папку с примерами буду готовить. Ну то что если как попало делать , то что попало получится , это я осознал. Четких инструкций как конкретно делать (по пунктам с акцентом на что обратить внимание) конкретным инструментом нету? Я как бы не специалист по акустике, но набор Г.-на на 10-20MB в дистрибутив тоже засовывать бы не хотелось, нужно несколько не очень больших штук -оригинальных и хорошего качества -на копирайты (если это понятие тут вообще применимо) честно говоря наплевать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 14:52 |
|
Генерация телефонных тонов в динамики(наушники) компьютера.
|
|||
---|---|---|---|
#18+
AndreTMСделайте сначала из исходника файл с помощью нормального звуко-редактора (SoundForge, например), нормализуя уровень, накладывая фильтры... Затем уже сохраните в нужном формате (для телефонки вообще можно использовать, например, ADPCM 8 кГц) - как обычный wav. Ну и пользуйте... Короче если использовать вот это: Дмитрий77 SoX - Sound eXchange Она еще и mp3 в wav конвертирует если правильную libmad.dll нарыть. Код: vbnet 1.
Либо Код: vbnet 1.
То из любого wav или mp3 получается отличный "нормализованный" готовый к употреблению в пищу Music_on_Hold без хрипов и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 06:59 |
|
|
start [/forum/topic.php?fid=60&tid=2157223]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 156ms |
0 / 0 |