C# DirectShow.Net使用音频播放视频

C# DirectShow.Net使用音频播放视频,c#,audio,directshow,directshow.net,C#,Audio,Directshow,Directshow.net,DirectShow.Net包含示例项目DxPlay,该项目在不播放音频的情况下播放视频。我需要修改这个项目,使其播放音频。我已经读到我需要添加一个音频过滤器和连接到引脚,但我没有找到一个方法来做到这一点 以下是设置过滤器的示例代码: // Add the filters necessary to render the file. This function will // work with a number of different file types. IBaseFilter sour

DirectShow.Net包含示例项目DxPlay,该项目在不播放音频的情况下播放视频。我需要修改这个项目,使其播放音频。我已经读到我需要添加一个音频过滤器和连接到引脚,但我没有找到一个方法来做到这一点

以下是设置过滤器的示例代码:

// 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);
您能告诉我如何让它播放音频吗?

只需添加

icgb2.RenderStream(null, null, lavSplitter, null, null);
如果同时存在视频和音频,则在构建视频部分后,拆分器中仍有音频输出引脚。RenderStream将找到它并进行渲染,自动插入音频解码器和渲染器。

只需添加

icgb2.RenderStream(null, null, lavSplitter, null, null);
如果同时存在视频和音频,则在构建视频部分后,拆分器中仍有音频输出引脚。RenderStream将找到它并进行渲染,自动插入音频解码器和渲染器。

只需添加

icgb2.RenderStream(null, null, lavSplitter, null, null);
如果同时存在视频和音频,则在构建视频部分后,拆分器中仍有音频输出引脚。RenderStream将找到它并进行渲染,自动插入音频解码器和渲染器。

只需添加

icgb2.RenderStream(null, null, lavSplitter, null, null);

如果同时存在视频和音频,则在构建视频部分后,拆分器中仍有音频输出引脚。RenderStream将找到它并进行渲染,自动插入音频解码器和渲染器。

如果您的视频已渲染,而音频未渲染,则添加额外的


将渲染音频部分。

如果您的视频已渲染而音频未渲染,则


将渲染音频部分。

如果您的视频已渲染而音频未渲染,则


将渲染音频部分。

如果您的视频已渲染而音频未渲染,则


将渲染音频部分。

对不起,我没有LavSpliter。这是我在玩代码时出现的额外一行。示例中的真实代码是没有这一行的代码。对不起,我没有LavSpliter。这是我在玩代码时出现的额外一行。示例中的真实代码是没有这一行的代码。对不起,我没有LavSpliter。这是我在玩代码时出现的额外一行。示例中的真实代码是没有这一行的代码。对不起,我没有LavSpliter。这是我在玩代码时出现的额外一行。示例中的真实代码是没有该行的代码。另一个附加的
RenderStream
如何,第二个参数是
MEDIATYPE\u Audio
sourceFilter
/
null
作为第三个参数,其余的是
null
s)?@romar.,添加了icgb2.RenderStream(null,MEDIATYPE.Audio,sourceFilter,null,null)-有效。非常感谢。另一个附加的
RenderStream
,第二个参数是
MEDIATYPE\u Audio
sourceFilter
/
null
作为第三个参数,其余的是
null
s)?@romar.,添加了icgb2.RenderStream(null,MEDIATYPE.Audio,sourceFilter,null,null)-它可以工作。非常感谢。另一个附加的
RenderStream
,第二个参数是
MEDIATYPE\u Audio
sourceFilter
/
null
作为第三个参数,其余的是
null
s)?@romar.,添加了icgb2.RenderStream(null,MEDIATYPE.Audio,sourceFilter,null,null)-它可以工作。非常感谢。另一个附加的
RenderStream
,第二个参数是
MEDIATYPE\u Audio
sourceFilter
/
null
作为第三个参数,其余的是
null
s)?@romar.,添加了icgb2.RenderStream(null,MEDIATYPE.Audio,sourceFilter,null,null)-它可以工作。非常感谢。