DirectShow中例子pull模式的源filter播放大文件慢的问题
2006-04-24 16:20
453 查看
DirectShow自带的例子中,有一个pull拉模式的Source Filter例子程序(Async那个),在它的Load()函数(装载源文件)里面调用了Read()函数,这里它是将整个源文件都读入内存中(所以播放小文件不太影响而播放大文件开始要等很久很久)
我本来的处理是:
让Read()函数先读取适当数据后启动一个子线程接着读数据,而主线程开始连接Graph实现播放,这样可以实现,不过伴随出现了2个问题: A.虽然只读了小部分数据,不过向下传递的参数还是文件的总大小,好象后面Stream那个类使用它的时候还很费时间(它的Size(),SetPoinyer(),Reag()这3个函数都使用了文件大小这个参数),不过还是比不用子线程快多了 B.这时候如果子线程数据还没读完,快进就有问题,因为快进到了还没有数据的位置, 画面会静止不动.
后来使用内存映射文件,解决:)
我本来的处理是:
让Read()函数先读取适当数据后启动一个子线程接着读数据,而主线程开始连接Graph实现播放,这样可以实现,不过伴随出现了2个问题: A.虽然只读了小部分数据,不过向下传递的参数还是文件的总大小,好象后面Stream那个类使用它的时候还很费时间(它的Size(),SetPoinyer(),Reag()这3个函数都使用了文件大小这个参数),不过还是比不用子线程快多了 B.这时候如果子线程数据还没读完,快进就有问题,因为快进到了还没有数据的位置, 画面会静止不动.
后来使用内存映射文件,解决:)
相关文章推荐
- 自己写的一个pull模式的source filter,播放mpeg1 2可以,而播放wmv不行的问题
- unity 打开文件对话框功能及非Editor模式下全屏播放打开文件对话框后程序转后台问题的处理
- ios video标签部分mp4文件无法播放的问题
- c++ 文件操作二进制模式的读写问题
- 遇到新问题,http协议的mp3文件直接播放。
- rtmp-nginx hls模式 m3u8文件丢失问题
- 解决Ubuntu14.04下Clementine音乐播放器不能播放wma文件的问题
- MediaPlayer的本地文件不能播放问题
- VLC播放H264文件问题
- C#使用DirectShow播放视频文件 [转]
- Windows Mobile 下使用DirectShow播放视频文件
- Windows Media Player播放AVI视频文件时,只有声音,没有图像,问题解决
- 实现KTV效果:播放歌曲,录音(存储录音文件),并同步播放录音 & 解释4.3以上audio与media资源冲突问题
- 在中Visual Studio .NET 2003利用DirectShow播放媒体文件(四)
- 【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- directshow 使用vc 6通过智能连接播放多个节目时最后一个节目视频的问题
- directshow 入门——播放文件
- VLC播放H264文件问题
- 关于webcast的wmv文件在windows2003播放声音问题