Имя:
Пароль:
-- ИЛИ --
Войти, используя:

Форум   Общая тематика и компьютеры   Программирование

Захват с микрофона в WAV-файл

 
Пост #59445 от 21 января 2009, 18:04 

Eduard_K

Здравствуйте. Я пытаюсь создать приложение, которое забирает с микрофона звук и сохраняет его в Wav-файл. Собственно проблемы с графом у меня нет, я моделировал в GraphEdit, в нем все работает. Я не могу лишь создать граф программно.
Граф следующий:
(Микрофон)[capture]--->[In](AudioRecorder WAV Dest)[Out]--->[In](File Writer-Имя файла)
В GraphEdit он замечательно все схватывает и сохраняет.
Моя проблема заключается в том, что я не могу создать(или вытащить) фильтр File writer. Т.е. ссылку на интерфейс вытащить я могу (обычным перебором по frienly name), а вот как запихнуть в него имя файла - не знаю. Догадываюсь, что это очень просто, но нигде не могу найти, т.к. не совсем понимаю, что именно искать.
Собственно, вопрос заключается в том, как получить ссылку на фильтр File Writer таким образом, чтобы он уже был "нацелен" на файл.

P.S. C открытием и воспроизведением файлов у меня проблем нет, я смог написать простенький видеоплеер (для конкретных файлов) с составлением графа вручную, меня лишь интересует вопрос, как сохранять потоки в файл, в данном случае, хочется сохранить WAV-файл.

добавлено спустя 2 ч. 59 минут

Все, разобрался сам, и чертовски рад этому!!!
Если кто не знает, оказывается надо было из интерфейса IBaseFilter, который получаем вытаскивая File writer, вытащить интерфейс IFileSinkFilter. Этот интерфейс и имеет метод SetFileName, где и указывается имя файла и тип содержимого. Вот, собственно и все! :-)
Отправить личное сообщениеПрофиль пользователяРоссия
Новосибирск
Постов: 16
Нарушений: Нет
Пост #59470 от 22 января 2009, 19:51 

Vlafy

Eduard_K : Если кто не знает, оказывается надо было из интерфейса IBaseFilter, который получаем вытаскивая File writer, вытащить интерфейс IFileSinkFilter. Этот интерфейс и имеет метод SetFileName, где и указывается имя файла
Примерно так. Но фильтры можно (нужно) создавать и добавлять в граф самому, тогда не придётся "вытаскивать" IBaseFilter. Дальше всё так же.

Кстати, всё это можно найти в MS Platform SDK или в онлайновом MSDN.

И ещё не указано, на каком языке вы пишете программу.
Отправить личное сообщениеПрофиль пользователяКонфигурация пользователяБлог пользователяWeb-сайт пользователяРоссия
Сосновый Бор
Постов: 6083
Нарушений: Нет
Пост #59481 от 23 января 2009, 00:51 

Eduard_K

Пишу на C# с использованием библиотеки DirectShowLib. В плюсовом коде все-таки разбираюсь, но больше нравится C# :) Кстати, что вы имели ввиду под "но фильтры можно (нужно) создавать и добавлять в граф самому"? Дело в том, что я просто делаю перечисление всех фильтров, потом поиск по перечислению, используя friendly name, и собственно выделение самого фильтра. А добавляю в граф, используя IGraphBuilder, метод AddFilter. Параметры метода представляют собой IBaseFilter-ссылку и имя фильтра. Ну, т.е., я к тому, что вроде бы сам создаю и добавляю.
И еще вопрос, если можно. У меня что-то случилось с программами Graphedit и GraphStudio. Ни одна из них не подключается к графам. Т.е. они видят граф, который построил, например Media Player Classic, но при нажатии Connect (или ОК), ничего не происходит (не появляется схема графа). :-( Как это победить? OC - Windows Vista.
Отправить личное сообщениеПрофиль пользователяРоссия
Новосибирск
Постов: 16
Нарушений: Нет
Пост #64021 от 29 сентября 2009, 21:44 

lacobelle

Кто знает программу создания музыки МП3???
Отправить личное сообщениеПрофиль пользователяУкраина
Новомосковск
Постов: 1
Нарушений: Нет
пресс-формы
Если Вы зарегистрированы, то для отправки сообщений, пожалуйста, авторизуйтесь.
-- ИЛИ --
Войдите, используя: Facebook Twitter Yandex Вконтакте Mail.ru ...
Страница создана за 0.056 секунды
Copyright © 1999-2012 PcTuner.Ru · Design by Alex Dovby