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才能播放。