首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectShow.Net播放带音频的视频

DirectShow.Net播放带音频的视频
EN

Stack Overflow用户
提问于 2014-03-06 08:33:42
回答 2查看 1.6K关注 0票数 0

DirectShow.Net包含示例项目DxPlay,它可以播放没有音频的视频。我需要修改这个项目,使其播放音频。我已经读过,我需要添加一个音频过滤器,并连接到引脚,但我没有找到一个方法。

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

代码语言:javascript
复制
// 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);

你能告诉我怎么让它播放音频吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-06 16:58:15

如果您的视频已呈现,而音频未呈现,则附加

代码语言:javascript
复制
icgb2.RenderStream(null, MediaType.Audio, sourceFilter, null, null)

将呈现音频部分。

票数 3
EN

Stack Overflow用户

发布于 2014-03-06 08:47:09

只需加上

代码语言:javascript
复制
icgb2.RenderStream(null, null, lavSplitter, null, null);

如果同时存在视频和音频,那么在构建视频部分之后,在分配器中仍然存在音频输出引脚。RenderStream会找到它并渲染,自动插入音频解码器和渲染器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22219052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档