📄 subject_56302.htm
字号:
<p>
序号:56302 发表者:找到新家 发表日期:2003-10-16 18:02:08
<br>主题:如何从Mpeg文件中抽取声音信号
<br>内容:我在做一个图像与声音的分析项目。在打开Mpeg文件后,需要可以得到在某一指定时刻的图像(bitmap格式)和该时刻的声音(比如该时刻前后一秒范围,PCM Wave格式)。现在我用ISampleGrabber已经可以得到指定时刻的图像。有人建议在GraphEdit中的Mpeg Audio Decoder后加入一个“Wav Dest”Filter已经可以得到Wave信息。但由于本人对DirectX不是很熟,但不知道如何用C++代码实现这个Graph。请大家看看有没有类似功能的C语言源码可以借鉴一下,或者谁愿意用几行C语言代码给表述一下。十分感谢。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:gzast163 回复日期:2003-10-16 19:18:08
<br>内容:用1个SampleGrabber用来获得图像,用另外一个SampleGrabber声音数据嘛,真是的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:找到新家 回复日期:2003-10-16 20:16:22
<br>内容:我也想这样写,但是不知道如何设置参数,以及用GetCurrentBuffer()返回的数据内容是什么格式的。<BR>我想MediaType是这样设置的<BR>AM_MEDIA_TYPE mt;<BR>mt.majortype = MEDIATYPE_Audio;<BR>mt.subtype = MEDIASUBTYPE_PCM;<BR>mt.formattype = FORMAT_WaveFormatEx;<BR><BR>下面两句是否也需要<BR>pSampleGrabber->SetBufferSamples(TRUE);<BR>pSampleGrabber->SetOneShot(TRUE);<BR><BR>最后就是pSampleGrabber->GetCurrentBuffer(&size, (long *)(buffer))的buffer中具体存有什么样的数据格式。<BR><BR>多谢<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:gzast163 回复日期:2003-10-17 09:27:58
<br>内容:如果SampleGrabber是接在Mpeg Audio Decoder之后,那么GetCurrentBuffer自然就是PCM的数据拉,具体的格式可以从ISampleGrabber::GetConnectedMediaType方法获得拉。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -