Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

VoIP в TurboPower Async Professional [D6, Win95/98, Win2k, WinXP]


Hogo ©   (2003-12-29 08:14:00) 

Есть там пример ExVoIP.dpr, запускаеться нормально пишешь IP к кому присоединиться нажимешь Connect и выдается ошибка: "Перечисление невозможно. Данные отсутствуют."
Ошибка происходит в процедуре:

procedure TfrmExVoIP.btnConnectClick(Sender: TObject);
begin
btnConnect.Enabled := False;
cbxEnablePreview.Enabled := False;
cbxEnableVideo.Enabled := False;
Add("Connecting...");
ApdVoIP1.Connect(edtAddress.Text);// Вот здесь выдает ошибку
end;

буду благодарен за любую помощь...


S@shka   (2003-12-29 14:45:00) [1]

Вообщем ищем ошибку в работе


Hogo   (2003-12-29 14:05:00) [2]

Исправил заработало,
но
1. Я нажимаю Connect и срабатывает исключение:
Debugger Exception Notification
Project ExVoIP.exe raised exceprion class EOleException with message "Неопознанная ошибка".....

Если просто .exe запускаю то нормально коннектится.
2. У меня после дисконнекта и попытки коннекта выдает OLE error 80040040(Это если запускать просто .exe).


S@shka   (2003-12-29 13:34:00) [3]

Тогда вот тебе решение этой проблемы....
Лезешь в папку Source и правишь
function TApdCustomVoIP.SelectTerminalOnCall(pAddress: ITAddress;
pCall: ITBasicCallControl): HRESULT;
{ find and select the terminals for the call }
... { leave the rest of function as is }
while pEnumStreams.Next(1, pStream, Fetched) = S_OK do begin
{ find the media type and direction of this stream and create }
{ the default terminal for this media type and direction }
if IsAudioCaptureStream(pStream) or {!!!}
IsAudioRenderStream(pStream) then begin {!!!}
Result := GetTerminal(pAddress, pStream, pTerminal);
if Result = S_OK then begin
{ select the terminal on the stream }
pStream.SelectTerminal(pTerminal);
if IsVideoCaptureStream(pStream) and FEnablePreview then
EnablePreviewWindow(pAddress, pStream); end; end;
end; {!!!} end;end;
Делаешь изменения отмеченный знаком {!!!}
Все после перекомпиляции ошибка исчезнет.
С чем она была связана - с тем что не корректно идетифицируется карта - почему то ее подхватывают и как аудио а как видео одновременно.
На этом траблы не заканчиваются :)))))
Компонент отлично работает только один раз :))))
То есть Connect ----> CancellCall если после этого опять делаем Connect то нас ничего хорошего не ожидает. На самом деле больше просто не работает и все. Плюс к этому "Catastrific application error". Выход из этой ситуации я пока не нашел (т.е. правильнее сказать "красивый" выход).
Так что если будут соображения буду очень рад. ПИШИ!!!!!!!!!!!!
Успехов.


Hogo   (2003-12-29 13:25:00) [4]

Да проблема все-еще есть:

> Выдает: OLE error 8004003B


S@shka   (2003-12-29 13:09:00) [5]

Гы могу помочь :) если конечно проблемв все еще осталась


Digitman   (2003-12-29 12:51:00) [6]

без описания разработчика конкретного OLE-сервера - никак


Hogo   (2003-12-29 12:44:00) [7]

Ну это понятно, а как узнать что она значит?


Digitman   (2003-12-29 12:21:00) [8]


> Это что за ошибка


ошибка, возвращенная неким OLE-сервером


Hogo   (2003-12-29 12:00:00) [9]

Тьфу блин, оказалось все просто у меня нет устройства по захвату видео :) отменил в свойствах видео и все.
Но появилсяь другая проблема, в модуле AdVoIP в процедуре

function TApdCustomVoIP.SelectTerminalOnCall(pAddress: ITAddress;

на строке

{ select the terminal on the stream }
pStream.SelectTerminal(pTerminal);

Выдает: OLE error 8004003B
Это что за ошибка?


Наверх

Титульная страница Поиск, карта сайта Написать письмо