GSM Форум - GSMForum.SU  

Вернуться   GSM Форум - GSMForum.SU > Мобильные телефоны > Мобильные модемы для сотовых сетей. 3G/GPRS/EDGE/GSM/HSCSD

Мобильные модемы для сотовых сетей. 3G/GPRS/EDGE/GSM/HSCSD Программный и аппаратный ремонт модемов (USB, PCMCIA) для различных сотовых сетей (Билайн, Мегафон, МТС, TELE2, Скайлинк и т.д.), работающих в стандарте GSM/HSCSD/GPRS/EDGE/3G- UMTS, CDMA 1X, EV-DO и т.п.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 13.03.2012, 16:59   #21
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
Работу со звуком я доделаю, у меня это был отдельный проект, только сейчас со временем плохо. Как доберусь, так объединю.

Wav файл состоит из заголовка 44 байт + данные:
52 49 46 46 xx xx xx xx 57 41 56 45 66 6D 74 20
10 00 00 00 01 00 01 00 40 1F 00 00 80 3E 00 00
02 00 10 00 64 61 74 61 yy yy yy yy .. данные ..
это стандартный заголовок для наших нужд, меняться будут лишь x и y, при этом, y= размер данных в байтах, а x=y-8. Проверьте, верно ли сформирован заголовок.
Или так, y=размер файла-44.
Autumnus вне форума   Ответить с цитированием Вверх
Следующие пользователи поблагодарили Autumnus за это сообщение:
duser (13.03.2012)
Старый 13.03.2012, 17:19   #22
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Да Спасибо со звуком вроде справился, записывается в файл и с проигрыванием проблем нет, buf: string; string заменил на AnsiString и все заработало...

Скажите пожалуйста Autumnus, а можно ли записывать PCM данные с микрофона в порт?
duser вне форума   Ответить с цитированием Вверх
Старый 13.03.2012, 18:44   #23
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
C микрофона звук идет по такому же принципу, как и через порт. В данном случае необходимо настроить микрофон на тот же формат и брать буфер равным 320 байт, при заполнении которого пересылать данные в порт. Если память не изменяет, для получения звука я использовал компонент из DelphiX. Хотя могу и наврать )
Постараюсь найти время и глянуть.
------------------------------------------------
Добавлено позже:
Наврал ))
Это куски кода, которые осуществляют получение звукового потока из микрофона (ну или другого выбранного устройства в микшере)


WavBufLen=10;
FCapture: TSoundCaptureStream;
FWaveStream: TWaveStream;


ShellMW.FWaveStream := TWaveFileStream.Create(ShellMW.LastFile, fmCreate);
with ShellMW.FCapture.SupportedFormats[SoundFormatIndex] do ShellMW.FWaveStream.SetPCMFormat(SamplesPerSec, BitsPerSample, Channels); //здесь задаются параметры входного сигнала
ShellMW.FWaveStream.Open(true);

ShellMW.FCapture.BufferLength:=WavBufLen;
ShellMW.FCapture.OnFilledBuffer:=ShellMW.CaptureFi lledBuffer;
ShellMW.FCapture.CaptureFormat:=SoundFormatIndex;
ShellMW.FCapture.Start;

procedure TShellMW.CaptureFilledBuffer(Sender: TObject);
var
work_buffer: array [0..999] of byte;
i: integer;
begin
Fcapture.Read(work_buffer, 200);
end;

процедура CaptureFilledBuffer срабатывает каждый раз при заполнении буфера

наводку дал, пока много времени нет, когда напишу то выложу

Последний раз редактировалось Autumnus; 13.03.2012 в 18:55. Причина: Сообщения , идущие подряд, объединены.
Autumnus вне форума   Ответить с цитированием Вверх
Старый 15.03.2012, 22:04   #24
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
duser, ну как, помогло?
Autumnus вне форума   Ответить с цитированием Вверх
Старый 16.03.2012, 12:25   #25
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Здравствуйте Autumnus...

Спасибо что написали!

... Да как-то со временем у меня не получилось, сегодня завтра посмотрю. И еще много вопросов возникают.

1. Прога записывает в файл без проблем (взято из Вашего кода).
Вопрос: Как можно параллельно воспроизвести этот кусок RAW PCM?

2. И еще не успел проанализировать Ваш последний код (с микрофоном...) т.е. записывать PCM данные с микрофона в порт?

3. В Зависимости от условия, записывать данные в файл, в один файл, целиком и звук и данные с микрофона (т.е. тел. разговор...)???

Вот такие вопросы??? Если время будет пишите!

С уважением duser...
duser вне форума   Ответить с цитированием Вверх
Старый 16.03.2012, 13:05   #26
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
1. В аудиоустройство данные записываются так же - потоком. Т.е. буфер записывается в файл и этот же буфер отправляем в аудиоустройство.
2....
3. Скорее всего данные в порту будут смешиваться. Даже не придется отдельно выводить каждый поток в аудиоустройство. В общем нужно попробовать. А если не будут - то большой проблемы тоже не вижу buf_out[i]:=buf1[i]+buf2[i];
Autumnus вне форума   Ответить с цитированием Вверх
Старый 16.03.2012, 16:10   #27
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Спасибо Autumnus, попробую разобраться...
duser вне форума   Ответить с цитированием Вверх
Старый 17.03.2012, 11:40   #28
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Да никак не получается с параллельным проигрыванием...
---------------------------------------------------------------------
Здравствуйте Autumnus...

Вроде бы этот код должен воспроизвести RAW PCM из буфера..., или я не правильно делаю???

procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
...


bufStream := 'RIFF WAVEfmt '+#$10+#0+#0+#0+#01+#0+#01+#0+#$40+#$1F+#0+#0+#$80 +#$3E+#0+#0+#02+#0+#$10+#0+'data ';

ApdComPort1.GetBlock(buf, Count);

with TMemoryStream.Create do begin
try
SetSize(44 + Count);
Seek(0, soFromBeginning);
WriteBuffer(bufStream[1], 44);
Seek(44, soFromBeginning);
WriteBuffer(buf, Count);
Seek(4, soFromBeginning);
dk:=Count-8;
WriteBuffer(dk, 4);
Seek(40, soFromBeginning);
WriteBuffer(Count, 4);
Seek(0, soFromBeginning);

PlaySound(Memory, 0, SND_MEMORY or SND_SYNC);
finally
Free;
end;
end;
...
end;

Последний раз редактировалось Vasilio; 19.03.2012 в 13:32. Причина: Сообщения, идущие подряд, объединены.
duser вне форума   Ответить с цитированием Вверх
Старый 18.03.2012, 09:03   #29
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
http://www.delphisources.ru/pages/fa...und_again.html
http://www.delphisources.ru/pages/fa...win32_api.html
можно покопаться вот тут
а по поводу примера - можно проигрывать данные по 320 байт, это во-первых, а во-вторых, Memory не вижу как связаны Memory и TMemoryStream

думаю, лучше всё-таки порциями через waveOutWrite звук выводить
Autumnus вне форума   Ответить с цитированием Вверх
Старый 18.03.2012, 09:30   #30
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Здравствуйте Autumnus

На счет Memory (с помощью with)...

with TMemoryStream.Create do begin
PlaySound(Memory, 0, SND_MEMORY or SND_SYNC);
end;

или

OutStream = TMemoryStream.Create;
PlaySound(OutStream.Memory, 0, SND_MEMORY or SND_SYNC);
...

В отдельные потоки передаю stream, что-то тормоз получается (не синхронно, с обрывами)...
Да верно говорите, надо как-то по другому нужно воспроизвести.
Суть ясна, проблема именно в реализации...
Спасибо за ссылки...
duser вне форума   Ответить с цитированием Вверх
Старый 18.03.2012, 20:26   #31
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
Тормозит из-за того, что звук идет маленькими порциями. Можно попробовать двойную буферизацию. Т.е. два массива - из одного проигрывается, а в другой пишется. Думаю здесь это лучше реализовать через потоки.
Autumnus вне форума   Ответить с цитированием Вверх
Старый 19.03.2012, 10:12   #32
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Здравствуйте Autumnus

Если Вам Нетрудно!, можете привести код (пример для Нашего случая, т.е. синхронно проигрывался звук с порта.......)



...
Спасибо...

Последний раз редактировалось duser; 19.03.2012 в 10:23.
duser вне форума   Ответить с цитированием Вверх
Старый 29.03.2012, 17:18   #33
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
Цитата:
Сообщение от duser Посмотреть сообщение
Здравствуйте Autumnus

Если Вам Нетрудно!, можете привести код (пример для Нашего случая, т.е. синхронно проигрывался звук с порта.......)



...
Спасибо...
Пока сам еще этим не занимался.

Как успехи, что-то получилось?
Autumnus вне форума   Ответить с цитированием Вверх
Старый 30.03.2012, 09:32   #34
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Здравствуйте Autumnus

Я уже неделю не смотрел, как-то без базовых знаний работы со звуком, не получается, да наверно здесь в большой степени и лень мешает...

А Вы можете мне помочь в реализации следующей задачи?...

1. С модемом идет родная программа, там есть весь функционал (звонилка, смс и т.д. ...)

2. Пока что для звонков буду использовать родную программу, мне нужно будет просто захватить разговор и записывать в файл.

3. Когда запускается эта программа, Мы знаем что она блокирует порт HUAWEI Mobile Connect - 3G Application Interface. ВОПРОС. Можно ли параллельно получить доступ к этому порту??? (хотя наверно нет...)

4. Если невозможно получить доступ к этому порту, как записать звук с компьютера, т.е. как понимаю с микшера (звук+микрофон...)???
Вчера скачал компоненты AudioLab, там есть компонент SystemMixer. Никак не могу понять как с этим компонентом можно захватить звук и записывать в файл???...

Спасибо
С Уважением duser
duser вне форума   Ответить с цитированием Вверх
Старый 30.03.2012, 09:44   #35
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
Здравствуйте, duser!
Подключиться к порту можно программой Advanced Serial Port Monitor. В своё время она мне здорово помогла разобраться в работе модема. Это сниффер. Можно наглядно смотреть что в порт пишется и что из него читается. Через эту программу так же хорошо видно, как идёт голосовой поток - по 320 байт туда и сюда.

Удачи!
Autumnus вне форума   Ответить с цитированием Вверх
Старый 30.03.2012, 09:49   #36
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Спасибо Autumnus!
Вы не подскажите как можно из Delphi подключится к этому порту параллельно, т.е. когда я запускаю родную программу модема, этот порт блокируется...
-------------------------------------------------------
Спасибо Autumnus!
Advanced Serial Port Monitor то что нужно ... Но
Есть ли готовые компоненты, или пример на Delphi, открыть порт в режиме сниффера???

Последний раз редактировалось Vasilio; 31.03.2012 в 17:31. Причина: Сообщения, идущие подряд, объединены.
duser вне форума   Ответить с цитированием Вверх
Старый 25.04.2012, 00:40   #37
g_grey
Новичок
 
Регистрация: 25.04.2012
Сообщений: 3
Поблагодарил: 1
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Цитата:
Сообщение от Autumnus Посмотреть сообщение
гетзилла.нэт
files/3068525/gsm.rar.html
реализовано проигрывание звука из файла в аудиопорт и запись аудио из порта в wav файл. снабдил исходник некоторыми комментариями и добавил отсылку и получение смс. будут вопросы отвечу.
Код писался в Delphi 5 с компонентом ApdComPort из AsyncPro 4.07.
Пожалуйста, помогите со следующим вопросом по данной программе:
при записи звукового файла (8000Гц, 16бит, удалил первые 44 байта) в порт, в телефоне только слышен очень короткий шум, а в программе в memo выводится "block is empty 1".
g_grey вне форума   Ответить с цитированием Вверх
Старый 28.04.2012, 00:10   #38
g_grey
Новичок
 
Регистрация: 25.04.2012
Сообщений: 3
Поблагодарил: 1
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Цитата:
Сообщение от Autumnus Посмотреть сообщение
гетзилла.нэт
files/3068525/gsm.rar.html
реализовано проигрывание звука из файла в аудиопорт и запись аудио из порта в wav файл. снабдил исходник некоторыми комментариями и добавил отсылку и получение смс. будут вопросы отвечу.
Код писался в Delphi 5 с компонентом ApdComPort из AsyncPro 4.07.
Получилось у кого-то проигрывание звука в аудиопорт?
g_grey вне форума   Ответить с цитированием Вверх
Старый 06.05.2012, 16:11   #39
Autumnus
Новичок
 
Регистрация: 08.03.2012
Сообщений: 15
Поблагодарил: 0
Поблагодарили 4 раз за 4 сообщений
Репа: 0
Проблема в том, что нужно подавать данные по счетчику. Т.е. не весь буффер целиком и за раз. А рассчитать сколько блоков в секунду. В исходнике эта проблема решена.
Autumnus вне форума   Ответить с цитированием Вверх
Старый 06.05.2012, 20:07   #40
g_grey
Новичок
 
Регистрация: 25.04.2012
Сообщений: 3
Поблагодарил: 1
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Цитата:
Сообщение от Autumnus Посмотреть сообщение
Проблема в том, что нужно подавать данные по счетчику. Т.е. не весь буффер целиком и за раз. А рассчитать сколько блоков в секунду. В исходнике эта проблема решена.
За исходники огромное спасибо!
Меня остановила описанная выше проблема и комментарий в исходнике "но это почему-то не работает" в процедуре ApdComPort2TriggerOutbuffFree.
Если исходник рабочий, попробую поискать у себя проблему.
g_grey вне форума   Ответить с цитированием Вверх
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DC-Unlocker V1.00.0629 Huawei U8150 IDEOS DB2020_Logs DC-Unlocker 10 27.04.2011 22:11
Проблема с Huawei E1550 от Киевстар macciavelli Мобильные модемы для сотовых сетей. 3G/GPRS/EDGE/GSM/HSCSD 26 20.02.2011 10:28
HUAWEI E1550 Киевстар / Firmware 11.608.12.02.174 Kovgan Мобильные модемы для сотовых сетей. 3G/GPRS/EDGE/GSM/HSCSD 45 03.05.2010 11:25
Разблокировка 3G модемов. Активация голоса в HUAWEI E1550 shura Запчасти и оборудование для ремонта телефонов 4 08.01.2010 09:03
DC-unlocker client software V1.00.0376 DB2020_Logs DC-Unlocker 4 23.12.2009 21:06


Текущее время: 22:03. Часовой пояс GMT +3.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot