Я боюсь смешивать два аудиопотока в один выходной поток. MFNode предлагает следующее: AudioMixerMFT но TopoEdit аварии, когда я пытаюсь построить топологию как этот & выполнить его:Несколько входных MFT в Microsoft Media Foundation
Примечание: Я попытался TopoEdit, который поставляется с Windows SDK 7.1 & также один с несколькими исправлениями со стороны автор «Разработка приложений Microsoft® Media Foundation»
Я думал, что это может быть проблема с TopoEdit, поэтому я построил топологию в коде (путем изменения кода из Ch # 9 «Разработка приложений Microsoft® Media Foundation») но он все еще не прошел с помощью «E_UN ОЖИДАЕМЫЙ катастрофический сбой "на mediaEvent->GetStatus(&hrStatus)
внутри HRESULT CPlayer::ProcessEvent(CComPtr<IMFMediaEvent>& mediaEvent)
в событии начала сеанса.
Теперь я подумал, что это может быть проблема с AudioMixerMFT, поэтому я написал пользовательский MFT с 2 входами, которые действуют как простой проход (только отправляет 1-й вход & игнорирует второй). И я построил топологию в TopoEdit, как и она работала:
Но когда я подключен «Audio 2.wav» в MFT, он разбился. Теперь я попытался использовать этот пользовательский MFT в своем собственном коде &, он снова работал с одним входом, но не с «E_UNEXPECTED« Катастрофический сбой »при применении двух входов.
Не уверен, в чем проблема, я начал сомневаться в поддержке нескольких входных MFT, я столкнулся с сообщением http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/21596e11-c4e2-480a-b28f-9e2f5fa8820d/mutlinput-and-multioutput (да, это довольно старый), в котором говорится, что он не поддерживается.
Есть ли кто-нибудь, кто смог успешно запустить AudioMixerMFT из MFNode? Любые альтернативы Microsoft Media Foundation? или Любой намек был бы оценен. Спасибо
Двойные входные MFT и DMO могут работать. DirectShow - альтернативный вариант для MF. Двойной ввод DMO не будет работать в DirectShow из коробки, но настраиваемый фильтр DirectShow способен выполнять работу. –
Спасибо @RomanR. Не могли бы вы указать мне несколько образцов MFT с двумя входами, если вы знаете о них. И btw любая догадка о том, что может быть неправильным, проблема с TopoEdit или MFT? –
Нет образца кода, извините. Вы должны уметь видеть проблемы подключения на отладчике (ваш MFT возвращает коды ошибок в 'SetOutputType' или othrewise до возникновения ошибки). Скорее всего, проблема связана с вашим MFT, но вопрос не содержит деталей, чтобы догадаться об этом. Как правило, двойные компоненты ввода сложны для реализации, потому что им приходится синхронизировать потоки, но вы еще не достигли этой точки. –