0

FMLE = Flash 实时媒体编码器 3.0

我已经在Adob​​e 论坛上发布了这个问题,但不确定他们在那个论坛上是否有具有编程经验的人。

我是一名开发人员,正在编写视频捕获和音频捕获设备。这些设备已经在其他编码器中工作。这些设备是用 directshow 编写的。我正在与 FMLE 集成并遇到此问题。

音频设备在 FMLE 中没有可用的音量条。FMLE 错误是“选定的音频设备“审查(公司机密)”不允许设置音量强度。禁用音量滑块控件。

我的音频设备实现了这些接口以及标准的 directshow 过滤器接口

  • 基本音频
  • IAMAudioInputMixer

我将跟踪点放在查询界面中,并找到了 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,但它似乎没有调用任何方法。

4

1 回答 1

0

adobe 论坛的 Ram Gupta 提供的答案。

“FMLE 不查询 CLSID_AudioInputMixerProperties 接口。FMLE 枚举音频源过滤器的所有引脚(使用 EnumPins),然后使用 QueryPinInfo 函数提取每个引脚信息。

FMLE 搜索方向为 PINDIR_INPUT 的音频过滤器 Pin(使用 QueryPinInfo),然后查询 IAMAudioInputMixer 接口来设置音量。

如果正确实现了以下功能,请您检查一下-> get_enable:它应该将其参数值设置为true。-->put_MixLevel -->QueryPinInfo:"

这个解决方案确实有效。我的问题是因为我从未声明过输入引脚(因为我没有任何与 directshow 相关的输入)。

于 2011-03-31T23:20:11.323 回答