(Directshow)wmp为什么打开这么慢?

msgsnd 2007-12-07 09:51:27
我开发了一个RTSP filter,可以正常使用,但是WMP打开一个地址时,一开始很长时间显示"正在定位",然后才显示"正在打开",但是使用我自己的Directshow Application,只是做了renderFile,却可以很快就"打开",应该intelligence connection没有问题。
不知道是什么原因?
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
msgsnd 2007-12-26
  • 打赏
  • 举报
回复
微软的bug,确定了。AKU6.1会修改。
rageliu 2007-12-14
  • 打赏
  • 举报
回复
不清楚wmp的"正在定位"到底是在做什么操作,我估计是:
1。判断打开文件的类型(网络数据)。
2。查找合适filter(RTSP 的网络source filter)。

我不确定这里是否包含多媒体具体格式的信息查询,因为如果没有这些信息,无法成功构建Graph.只有Graph建立成功后,才会是"正在打开"吧

至于wshcdr所的找pin,其实这个不是问题,只要source filter确定了就行(估计楼主这里pin也不是采用的动态创建方式)
msgsnd 2007-12-10
  • 打赏
  • 举报
回复
没人知道啊
msgsnd 2007-12-08
  • 打赏
  • 举报
回复
原来,WMP的状态openstate包括:
typedef enum WMPOpenState{
wmposUndefined = 0,
wmposPlaylistChanging = 1,
wmposPlaylistLocating = 2,
wmposPlaylistConnecting = 3,
wmposPlaylistLoading = 4,
wmposPlaylistOpening = 5,
wmposPlaylistOpenNoMedia = 6,
wmposPlaylistChanged = 7,
wmposMediaChanging = 8,
wmposMediaLocating = 9,
wmposMediaConnecting = 10,
wmposMediaLoading = 11,
wmposMediaOpening = 12,
wmposMediaOpen = 13,
wmposBeginCodecAcquisition = 14,
wmposEndCodecAcquisition = 15,
wmposBeginLicenseAcquisition = 16,
wmposEndLicenseAcquisition = 17,
wmposBeginIndividualization = 18,
wmposEndIndividualization = 19,
wmposMediaWaiting = 20,
wmposOpeningUnknownURL = 21
} WMPOpenState;

不知道有什么办法跳过Locating阶段,或者把Locating的时间设置短些
msgsnd 2007-12-07
  • 打赏
  • 举报
回复
谢谢。
我认为是"正在定位"是在找source filter,而一旦找到就"正在打开",但是不明白的是自己的Application为什么可以很快的找到Source filter,而WMP不能,WMP在做什么呢,如何避免?
wshcdr 2007-12-07
  • 打赏
  • 举报
回复
难道是没有 找WMP out pin 费的时间

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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