当前位置: 代码迷 >> 多媒体/流媒体开发 >> DIRECTSHOW怎么得到视频的最大长度和播放RMVB文件
  详细解决方案

DIRECTSHOW怎么得到视频的最大长度和播放RMVB文件

热度:9067   发布时间:2013-02-26 00:00:00.0
DIRECTSHOW如何得到视频的最大长度和播放RMVB文件
我是用CB开发的

我用这样的办法取得时间,但好象和滑动条的MAX值不批匹配,总是进度条滑到头了文件还没播放完

我是不是做少了什么?还是这个滑动条支持的格式问题,

下面是实现代码

LONGLONG i;

pSeek->GetDuration(&i) ;

TrackBar1->Max=i;



还有DIRECTSHOW不能播放RM RMVB格式的文件,如何解决,
请不要叫我去下载它们的播放器,如果这样就OK的话,我们还写这些程序干什么?

大部分都可以播放 就差RMVB了,就是不知道怎么解码



------解决方案--------------------------------------------------------
dshow时间单位是100ns。
1s = 10000000i64;
太大的数据自己比例缩放一下就行了,比如一个刻度表示1s或10s等,其实一般100ms就足够了,进度条比较细腻,而且又不会越界。
------解决方案--------------------------------------------------------
LONGLONG i;

pSeek->GetDuration(&i) ;

TrackBar1->Max=i;

这样进度条的值太大了,建议进行转换下,将最大值转换为100或1000即可

RMVB的需要安装RmSpliter的一个Filter才能播放。
  相关解决方案