Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.16.90] |
|
Сообщ.
#1
,
|
|
|
Как получить данные с directshow аудио фильтра, потом передаю по сети и как подать эти данные с буфер фильтра источника аудио?
Вот программа захвата звука: void CCapture_Audio_MFCDlg::init_capture() { HWND parameter_hwnd = m_hWnd; HRESULT hr; { //Создание графа-фильтров - Create the Capture Graph Builder hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**)&pBuild ); if (SUCCEEDED(hr)) { //Создание менеджера графа фильтров - Create the Filter Graph Manager hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&pGraph); if (SUCCEEDED(hr)) { //Initialize the Capture Graph Builder pBuild->SetFiltergraph(pGraph); // Find system device enumerator to find a video capture device. hr = CoCreateInstance(CLSID_SystemDeviceEnum, 0, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, (LPVOID*)&pDevEnum); if(SUCCEEDED(hr)) { //создает счетчик для определенной категории устройств hr = pDevEnum->CreateClassEnumerator(CLSID_AudioInputDeviceCategory, &pEnum, 0); if(SUCCEEDED(hr)) { if( pEnum->Next(1, &pMoniker,0) == S_OK ) { hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void **)&pCapture); //hr = pGraph->AddFilter(pCapture, L"CaptureFilter"); //pGraph->RenderFile(L"c:\\temp\\Wildlife.wmv", NULL); //чтение файла - работает if(SUCCEEDED(hr)) { pGraph->AddFilter(pCapture, L"Capture Filter"); hr = CoCreateInstance(CLSID_AudioRender, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pAudioRenderer); if (SUCCEEDED(hr)) { pGraph->AddFilter(pAudioRenderer, L"Audio Renderer Filter"); hr = pBuild->RenderStream(/*&PIN_CATEGORY_PREVIEW*/NULL, NULL/*&MEDIATYPE_Video*/, pCapture, NULL, pAudioRenderer); //3,4,5 Параметры - фильтры, которые объединены в граф // Set the owner window to receive event notices. pGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEvent); pEvent->SetNotifyWindow((OAHWND)hWnd, 0, 0); // Run the graph. pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pMediaControl->Run(); SaveGraphFile(pGraph, L"c:\\temp\\audio_capture.grf"); } } } } } } } } } |
Сообщ.
#2
,
|
|
|
Цитата Kozlov_Sergey @ Как получить данные с directshow аудио фильтра, потом передаю по сети и как подать эти данные с буфер фильтра источника аудио? Вопрос не понятен. Напишите весь абзац по русски. |
Сообщ.
#3
,
|
|
|
Мне нужно получить порцию аудио данных с какого-либо фильтра в аудио графе directshow, желательно с фильтра захвата аудио от микрофона, передать по сети и воспроизвести в программе на удалённом компьютере.
На обоих компьютерах моя программа. Имеем: 1. Передача по сети типа данных IStream готова. 2. В коде в первом сообщении темы строится аудио граф directshow для захвата аудио от микрофона и вывода на звуковую карту (на одном компьютере). Найти: 1. Получить порцию аудио данных от фильтра захвата аудио от микрофона. 2. Подать эту порцию аудио данных в фильтр аудио источник (будет работать на удалённом компьютере). Требования: 1. Использовать directshow. Писать directshow фильтры получения порции данных и источников не хочется, потому долго и хочется использовать готовое решение. Но можно было бы написать 4 фильтра: 1. источник видео (сюда подаём порцию видео). 2. источник аудио (сюда подаём порцию аудио). 3. нуль рендерер видео (отсюда получаем порцию данных видео). 4 нуль рендерер аудио (отсюда получаем порцию данных аудио). |
Сообщ.
#4
,
|
|
|
Я не хочу и не буду всё делать сам!!!
Меня никто этому не заставит! Нужно использовать готовое!!! Добавлено Куплю исходники (C++, Visual Studio MFC project) данных фильтров или (предпочтительнее) куплю исходники решающие данную задачу (C++, Visual Studio MFC project). Для задачи данное темы: Примерно 100 (максимум) строк кода по 50 символов плюс к моему коду из первого сообщения. Итого максимум 10000 байт исходного кода на C++ в кодировке Unicode-16. Цена договорная. Оплата: PayPal, WebMoney, EasyPay.BY. Сразу предупреждаю, что денег мало, поэтому и 100 долларов заплатить может не смогу. Добавлено Примечание: 1. Рассчитываю на решение в 1000 байт (500 символов) за максимум 10 долларов. 2. Работы тут для знающего человека максимум на 1 час. Условия: 1. Предоставляется проект Capture_Audio_MFC. 2. Архив с проектом Capture_Audio_MFC находится по адресу ftp://ftp.stl-galaxy.by/Capture_Audio_MFC_paid.rar Требования: 1. Отредактировать проект и прислать по email мне. 2. email в личном сообщении или на главной в контактах странице сайта http://www.stl-galaxy.by/. |
Сообщ.
#5
,
|
|
|
Цитата Kozlov_Sergey @ СТЛ-Галактика? WTF? Попытка построить свой собственный интернет с блэкджеком и шлюхами? 2. email в личном сообщении или на главной в контактах странице сайта http://www.stl-galaxy.by/. |