在源上设置属性
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
[此 API 不受支持,将来可能会更改或不可用。]
创建新的源对象时,需要设置一些属性,也可以选择性地设置其他属性。 必须设置以下属性。
- 相对于其余时间线的开始和停止时间。 调用 IAMTimelineObj::SetStartStop 方法。 不要在同一轨道中的源对象上设置重叠时间,否则将导致未定义的行为。
- 用作源剪辑的媒体文件。 调用 IAMTimelineSrc::SetMediaName。
- 相对于原始源文件的媒体启动和停止时间。 调用 IAMTimelineSrc::SetMediaTimes 方法。 异常:如果源是静止图像,请不要指定媒体时间。 有关媒体时间的详细信息,请参阅 DirectShow Editing Services 中的时间。
源对象从父组继承其媒体类型,因此无需指定媒体类型。
可选属性包括:
- 拉伸模式。 拉伸模式指定 Microsoft® DirectShow® 编辑服务 (DES) 如何呈现其大小与输出维度不匹配的源。 默认情况下,DES 在不保留纵横比的情况下拉伸图像。 或者,DES 可以裁剪图像或创建信箱。 调用 IAMTimelineSrc::SetStretchMode 方法以指定拉伸模式。
- 源文件的持续时间。 如果在设置媒体时间之前设置此属性,DES 将验证媒体停止时间,并在超过文件持续时间时截断停止时间。 这有助于避免以后的呈现错误。 可以使用媒体检测器获取文件的持续时间,如 使用媒体检测器中所述。 调用 IAMTimelineSrc::SetMediaLength 方法以指定文件持续时间。
- 流编号。 默认情况下,源对象使用文件中与父组的媒体类型匹配的第一个流。 如果文件包含两个或多个相同媒体类型的流,请通过调用 IAMTimelineSrc::SetStreamNumber 来选择要使用的流。 可以使用媒体检测器来查找流数。
相关主题