C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проиграть *.wav в телефонную линию  (Прочитано 6206 раз)
Next23
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 8


« : 15 Март 2011, 17:15:35 »

Доброго всем!
Задача: дуалапно позвонить, и, по кнопочке,  проиграть wav в линию.
Задача стара, но адекватного решения  так и не нашел...
Не буду грузить кодом, дошел до сл.алгоритма:
Посылаем в com порт команды:

AT+FCLASS=8;+VSP=1;+VLS=14;+VGM=164;+VGS=250 // переход с голосовой режим,  + режим телефона, громкость динамик/наушник
ATDT/123456
звонится, когда начинаются гудки, посылаем:

AT+VLS=1     // выбираем куда играть wav (1 - телефонная линия)
AT+VSM=1   // выбираем формат для проигрывания
AT+VTX      // Начало передачи, после ответа CONNECT  надо запихивать вавку в com порт

Теперь сабж:
как правильно запихать  эту самую вавку?
Остановился на следующем:

Код
FILE * fin;
char a;
fin = fopen("D:\\hello.wav","rb");
while(!feof(fin))
{
fread(&a,1,1,fin);
//WriteFile(hCom,&a,1,&Writ,NULL);
TransmitCommChar(hCom,a);
ClearCommBreak(hCom);
}
fclose(fin);
TransmitCommChar(hCom,0x10); // end transmit
TransmitCommChar(hCom,0x03);
 
 

Но, при попытке воспроизвести - слышится сильный шум по длительности приблизительно равный длительности записи.  Попытки поиграться с форматом (AT+VSM...) ничего не дали - шум меняется, но все равно - ШУМ. Скорость на порту 115200.
Подскажите, в чем причина.
+ Что правильнее использовать в задаче: TransmitCommChar или WriteFile? На слух - разницы нет...
Заранее благодарен.
Записан
Zor
Глобальный модератор


Сказали спасибо: +158/-30
Offline

Сообщений: 2946


« Ответ #1 : 15 Март 2011, 18:29:06 »

а с форматом самого файла играться-то пробовал? а то модем он ведь тупой...
Записан
Hammersoft
Участник


Сказали спасибо: +23/-2
Offline

Сообщений: 167


« Ответ #2 : 16 Март 2011, 00:15:40 »

Как в звуковую плату надо загонять. Начинаем с waveOutGetNumDevs(), и дальше по хелпу.
Записан
Zor
Глобальный модератор


Сказали спасибо: +158/-30
Offline

Сообщений: 2946


« Ответ #3 : 16 Март 2011, 08:37:50 »

Да ладно, а пример кода можно?
С учетом того что модем в системе (по ресурсам) это только порт.
Записан
Hammersoft
Участник


Сказали спасибо: +23/-2
Offline

Сообщений: 167


« Ответ #4 : 16 Март 2011, 21:56:51 »

Внутренний войсе модем еще как одно звуковое устройство, внешний комовский через шнурок работает со звуковой картой.
Записан
Zor
Глобальный модератор


Сказали спасибо: +158/-30
Offline

Сообщений: 2946


« Ответ #5 : 16 Март 2011, 22:59:15 »

понятно, чиста-теория.
Записан
Next23
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 8


« Ответ #6 : 18 Март 2011, 10:47:28 »

Ндя,... дело было не в бобине....   
Перезаписал wav в формате PCM 8 кГц 8 бит Моно и заарбайтен негодяен! 
Zor, спасибо  за мысль.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.059 секунд. Запросов: 19.