首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

DirectShow怎么获取音频左右声道的电平值

2012-06-03 
DirectShow如何获取音频左右声道的电平值我用DirectShow开发了一个播放器,可以做简单的非编工作,目前就是

DirectShow如何获取音频左右声道的电平值
我用DirectShow开发了一个播放器,可以做简单的非编工作,目前就是左右声道的电平值拿不到,确切的是拿的不准。
详细情况如下:
我在GraphicEdit中的声音流的最后一个filter(Default DirectSound Device)前面加了一个SampleGrabber,利用它里面的回调函数(int ISampleGrabberCB.SampleCB(double SampleTime, IMediaSample pSample)),我也可以获得IMediaSample值,问题是:

1.怎么把IMediaSample换算成左右声道的电平值,我目前用傅氏变换做的,但是有非常明显的误差
2.为什么总是会获取比当前播放帧还要往后的IMediaSample,比如当前播放到第50帧,实际获取的IMediaSample常常到75帧,一般多出1秒。

以上问题我用C++,C#做都是这样

[解决办法]
1.需要PCM的量化公式或者量化算法。
2.可能是Render Filter缓存数据了。

热点排行