2011-03-29 16 views
0

FMLE =閃存音量強度住Media編碼器3.0接口在FMLE

我已經張貼在Adobe Forum這個問題,但不知道他們是否有人們對這個論壇有編程經驗。

我是一名開發者,撰寫視頻採集和音頻採集設備。這些設備已經在其他編碼器中工作。這些設備是用directshow編寫的。我正在與FMLE集成並遇到此問題。

音頻設備在FMLE中沒有可用的音量條。 FMLE錯誤是「所選音頻設備」審查(公司機密)「不允許設置音量強度。禁用音量滑塊控件。」

我的音頻設備實現這些接口與標準的DirectShow過濾器接口

  • IBasicAudio
  • IAMAudioInputMixer

我放的QueryInterface跟蹤點一起,發現FMLE查詢對(我的註釋字符串評論)

  • {IID_IUnknown}
  • {IID_IPersistPropertyBag}
  • {IID_IBaseFilter}
  • {IID_IAMOpenProgress}
  • {IID_IAMDeviceRemoval}
  • {IID_IMediaFilter}
  • {IID_IAMBufferNegotiation}
  • {IID_IAMStreamConfig}
  • {IID_IPin}
  • {IID_IReferenceClock}
  • {IID_IMediaSeeking}
  • {IID_IMediaPosition}
  • {IID_IVideoWindow} // WTF ??查詢視頻窗口?
  • {} IID_IBasicAudio
  • {2DD74950-A890-11D1-ABE8-00A0C905F375} //我覺得這是異步流,

我在想什麼? FMLE不使用IAMAudioInputMixer? 任何人都知道FMLE用於音量強度的確切界面? 。我假設它是IBasicAudio,但它似乎沒有調用任何方法。

回答

0

答案由adobe論壇的Ram Gupta提供。

「FMLE不會查詢CLSID_AudioInputMixerProperties接口。 FMLE枚舉(使用EnumPins)音頻源過濾器的所有引腳,然後用QueryPinInfo函數提取每個引腳的信息。

FMLE搜索音頻過濾器引腳,其方向是PINDIR_INPUT(使用QueryPinInfo),然後查詢IAMAudioInputMixer接口設置音量級別。

如果以下功能正確實施,您可以請求chk: - > get_enable:它應該將其參數值設置爲true。 - > put_MixLevel - > QueryPinInfo:」

這個解決方案沒有工作我的問題是,因爲我從未宣佈過的輸入引腳(因爲我沒有任何DirectShow的相關輸入)