【发布时间】:2014-03-06 08:33:42
【问题描述】:
DirectShow.Net 包含示例项目 DxPlay,它可以播放没有音频的视频。我需要修改这个项目以使其播放音频。我已阅读我需要添加音频过滤器并连接到 pin,但我没有找到方法。
以下是设置过滤器的示例代码:
// Add the filters necessary to render the file. This function will
// work with a number of different file types.
IBaseFilter sourceFilter = null;
hr = m_FilterGraph.AddSourceFilter(FileName, FileName, out sourceFilter);
DsError.ThrowExceptionForHR(hr);
// Get the SampleGrabber interface
m_sampGrabber = (ISampleGrabber)new SampleGrabber();
IBaseFilter baseGrabFlt = (IBaseFilter)m_sampGrabber;
// Configure the Sample Grabber
ConfigureSampleGrabber(m_sampGrabber);
// Add it to the filter
hr = m_FilterGraph.AddFilter(baseGrabFlt, "Ds.NET Grabber");
DsError.ThrowExceptionForHR(hr);
// Connect the pieces together, use the default renderer
hr = icgb2.RenderStream(null, null, sourceFilter, baseGrabFlt, null);
DsError.ThrowExceptionForHR(hr);
能否请您提示我如何让它播放音频?
【问题讨论】:
-
另外一个
RenderStream以MEDIATYPE_Audio作为第二个参数(sourceFilter/null作为第三个参数,其余的是nulls)怎么样? -
@RomanR.,添加了 icgb2.RenderStream(null, MediaType.Audio, sourceFilter, null, null) - 它有效。谢谢!
标签: c# audio directshow directshow.net