![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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
Это что за ошибка?