Windows下使用MPlayer播放BT下载的文件,实现边下载边播放,望大家进来指点指点如何实现,先谢谢大家了

程序员小哈
嵌入式领域优质创作者
博客专家认证
2009-11-14 08:26:15
我现在在做一个项目,计划要实现Windows下使用MPlayer播放BT下载的文件,实现边下载边播放,我看现在风行、迅雷,还有一些bt软件都实现了边下载边播放,我不明白其中的原理,我现在的理解是这样的:让BT顺序下载,然后求出可播放文件的大小;初始缓冲一定程度之后,调用MPlayer开始播放,当播放的进度接近下载进度时暂停播放,待缓冲(下载)一些之后再继续播放。
现在我的问题是:那些实现边下载边播放的软件是这么实现吗?还有就是这里面要不断的查看下载进度和播放进度作比较,所以是不是要新开一个线程来做比较吗?我看Mplayer文档中有-cache 缓冲的选项,这个选项怎么用呢?因为在“让BT顺序下载,然后求出可播放文件的大小;初始缓冲一定程度之后,调用MPlayer开始播放,当播放的进度接近下载进度时暂停播放,待缓冲(下载)一些之后再继续播放。”
这个判断的过程中总是容易暂停晚了,这样程序就出错了,如果能有一种缓冲机制的话,就好控制多了,所以想问问大家这个-cache 如何使用?它-cache 只能用在流媒体中吗?本地的视频(就是我用BT下载的视频)可以模拟成流媒体吗?我听人说可以在文件路径前加上127.0.0.1然后再加路径可以模拟网络加载视频,然后就可以使用那种-cache 缓冲的方式了,可是我把127.0.0.1加在路径上之后MPlayer就不播放了,望大家能够指点一下,困惑好久了,先谢谢大家了,UP者都有分
...全文
550 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aojingbo123 2010-03-27
  • 打赏
  • 举报
回复
楼主 我最近也在做边下载BT边播放BT的功能 你能留下你的QQ吗 很多问题想请教你
程序员小哈 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hblhshb 的回复:]
我的做法是写个source filter,当数据不够的时候它会自动定位到结尾,我把它再拽回到上次播放的位置
[/Quote]
谢谢你的回复,这个帖子我都结贴了,不能给你分了不好意思,你是用DirectShow做的source filter吗?
hblhshb 2009-11-18
  • 打赏
  • 举报
回复
我的做法是写个source filter,当数据不够的时候它会自动定位到结尾,我把它再拽回到上次播放的位置
程序员小哈 2009-11-15
  • 打赏
  • 举报
回复
自己顶一下,大家再帮帮忙啊,困惑中
程序员小哈 2009-11-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 psusong 的回复:]
我的实现就像你描述的那样,只不过我是自己管理的cache, 当cache 里面的数据少于一个临界值后我就发消息让播放器暂停。
[/Quote]

现在我做,有一个问题就是:有的视频很大,但是播放时间却很短,比如一个高清晰的广告;我如果按文件整体的百分比做比较的话,比如:小于2%我就暂停的话,但再次开启时也就一秒缓冲的这部分内容就播放完了,然后就又越界了,这个范围不太好把握啊;我看优酷、酷六那种flash播放的视频就可以做到下载多少播放多少的,不知道您用的是不是MPlayer,你的缓冲区是怎么做的呢?是开了一个新线程做判断吗?希望得到您进一步的指点,谢谢
程序员小哈 2009-11-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 psusong 的回复:]
我的实现就像你描述的那样,只不过我是自己管理的cache, 当cache 里面的数据少于一个临界值后我就发消息让播放器暂停。
[/Quote]
^_^你回帖好快啊,呵呵,MPlayer自己不可以设置缓冲区吗?可以模拟网络播放的那种形式吗?就是127.0.0.1加路径?你的也是bt下载吗?
GoogleGeek 2009-11-14
  • 打赏
  • 举报
回复
我的实现就像你描述的那样,只不过我是自己管理的cache, 当cache 里面的数据少于一个临界值后我就发消息让播放器暂停。

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧