Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

ViVo Help!!!

Hi!
Люди, выручайте!!!! Пожалуста... Тема горит!!!
Есть на видюхе VIVO и есть драйверок к нему (nVidia Video Capture
(universal))... Как с него грабнуть в свою прогу видио???

Ответить   Mon, 19 Jan 2004 22:12:57 +0200 (#58758)

 

Ответы:

Приветец, Boris!

Tuesday, January 20, 2004, 12:12:57 AM, ты выдал:

Ну че, так трудно хелп открыть? Открываешь Win32 SDK Reference
В предметном указателе набираешь Video.
И смотришь че к чему. Если с английским не дружишь, используй
переводчика.
В частности, посмотри процедурку

HWND VFWAPI capCreateCaptureWindow(

LPCSTR lpszWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWnd,
int nID
);

и ее приложения.

Вообще-то эта тема не так проста как кажется. Где-то у меня была
програмулька okno с исходниками. Правда на сях, но общие принципы
посмотреть можно. Она просто создавала окно VFW с текущими настройками
каптуринга. Вообще гемор не в том чтобы окно создать - а в том чтобы
сделать (или вызвать) корректное диалоговое окно выбора источника для
VFW.

Ответить   Шевченко Сергей Tue, 20 Jan 2004 08:45:31 +0400 (#58981)

 

Hello Шевченко,

Tuesday, January 20, 2004, 6:45:31 AM, you wrote:

а случайно програмки по захвату звука с микрофона у тебя нет?
был бы очень признателен если вышлеш

Ответить   Tue, 20 Jan 2004 14:05:40 +0200 (#59241)

 

Hi!
Ну дык через TMediaPlayer Record'ишь себе и все!

Ответить   Tue, 20 Jan 2004 19:34:24 +0200 (#59534)

 

Приветец, portos_ua!

Tuesday, January 20, 2004, 4:05:40 PM, ты выдал:

Кстати, имей ввиду, я на дельфах сижу, так что если тока в них... А
вообще ниче сложного - делал писалку со звуковухи уже.
Если интересно самому разобраться - попробуй TMediaPlayer бросить на
форму и глянь. Если влом - могу набарабать и выслать, как тебе
удобней. Там делов-то на 10 минут

Ответить   Шевченко Сергей Tue, 20 Jan 2004 17:06:29 +0400 (#59767)

 

Hello Шевченко,

Tuesday, January 20, 2004, 3:06:29 PM, you wrote:

да это я впринципе знаю, мне нужно звук потом еще по сетке гнать,
тоисть чат звуковой так что хотелось бы что-нибудь другое

Ответить   Wed, 21 Jan 2004 09:11:22 +0200 (#59833)

 

Приветец, portos_ua!

Wednesday, January 21, 2004, 11:11:22 AM, ты выдал:

А в чем проблема? С прогоном по сетке... В принципе есть 2 варианта -
первый - организуешь соединение и гонишь по нему stream'ные данные
твоего звука, а второй, более простой и надежный - ждешь пока чувак
скажет в микрофон все че думает, и по окончанию базара бросаешь это
дело в слушателя... А у того проигрывается. Конечно паузы будут, зато
надежно. Можно забацать гибрид - маленькими кусочками пишешь и
отправляешь постоянно - а слушатель это у себя складывает и
сразу проигрывает, а в это время ему валятся остальные. Проще конечно
связь по UDP сделать, но бывает пакеты пропадают если сетка
тормозная и трафиком загруженная... Либо один пакет может прийти позже
другого. Но такое бывает крайне редко. А вообще - проблем не вижу,
было бы желание.

Ответить   Шевченко Сергей Wed, 21 Jan 2004 14:30:24 +0400 (#60084)

 

Приветец, portos_ua!

Wednesday, January 21, 2004, 11:11:22 AM, ты выдал:

P.S. А лучше делать запись не через тормоZной TMedPlr, a через MCI напрямую.
Тормозов меньше и отзывается оперативнее.

Ответить   Шевченко Сергей Wed, 21 Jan 2004 14:32:08 +0400 (#60085)

 

Hello Шевченко,

Wednesday, January 21, 2004, 12:32:08 PM, you wrote:

а вот теперь если можно поподнобней на простом примере или линков каких

Ответить   Wed, 21 Jan 2004 15:51:05 +0200 (#60194)

 

Приветец, portos_ua!

Вот лови кусок из Win32SDK
Из си в дельфу переделать раз плюнуть.
Главное - принципы общения с MCI.

// Uses the MCI_OPEN, MCI_RECORD, and MCI_SAVE commands to record and
// save a waveform-audio file. Returns 0L if successful; otherwise,
// it returns an MCI error code.
DWORD recordWAVEFile(DWORD dwMilliSeconds)
{
UINT wDeviceID;
DWORD dwReturn;
MCI_OPEN_PARMS mciOpenParms;
MCI_RECORD_PARMS mciRecordParms;
MCI_SAVE_PARMS mciSaveParms;
MCI_PLAY_PARMS mciPlayParms;

// Open a waveform-audio device with a new file for recording.
mciOpenParms.lpstrDeviceType = "waveaudio";

mciOpenParms.lpstrElementName = "";
if (dwReturn = mciSendCommand(0, MCI_OPEN,
MCI_OPEN_ELEMENT | MCI_OPEN_TYPE,
(DWORD)(LPVOID) &mciOpenParms))
{
// Failed to open device; don't close it, just return error.
return (dwReturn);
}

// The device opened successfully; get the device ID.
wDeviceID = mciOpenParms.wDeviceID;

// Begin recording and record for the specified number of
// milliseconds. Wait for recording to complete before continuing.

// Assume the default time format for the waveform-audio device
// (milliseconds).
mciRecordParms.dwTo = dwMilliSeconds;
if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD,
MCI_TO | MCI_WAIT, (DWORD)(LPVOID) &mciRecordParms))
{
mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
return (dwReturn);
}

// Play the recording and query user to save the file.
mciPlayParms.dwFrom = 0L;
if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY,

MCI_FROM | MCI_WAIT, (DWORD)(LPVOID) &mciPlayParms))
{
mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
return (dwReturn);
}
if (MessageBox(hMainWnd, "Do you want to save this recording?",
"", MB_YESNO) == IDNO)
{
mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
return (0L);
}

// Save the recording to a file named TEMPFILE.WAV. Wait for
// the operation to complete before continuing.
mciSaveParms.lpfilename = "tempfile.wav";

if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE,
MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID) &mciSaveParms))
{
mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
return (dwReturn);
}

return (0L);
}

Ответить   Шевченко Сергей Thu, 22 Jan 2004 09:58:46 +0400 (#60684)

 

Hello Шевченко,

Thursday, January 22, 2004, 7:58:46 AM, you wrote:

сенкс, буду разбираться

Ответить   Thu, 22 Jan 2004 18:34:36 +0200 (#61123)