用于接收网络音频流的Source Filter怎样控制播放速度?

lofree 2009-04-17 06:49:27
我写了一个push模式的SourceFilter,派生自CSourceStream
在FillBuffer函数中,填充网络中接收过来的音频数据(实时的音频流)

测试的时候,在本地将音频捕获后直接将捕获到的音频数据放入一个缓存区中,然后在FillBuffer函数中填充
发现要延迟7、8秒后才回放我刚刚讲过的话,并且是断断续续的,捕获的速度基本上是FillBuffer函数调用的2倍,
请问一下FillBuffer函数调用的频率是根据什么确定的?

使用IMediaSample.SetTime设置Buffer的起始流时间时,发现没起什么作用,如果要控制播放的速度应该做哪些工作呢?

我是新手,请各位多多指教,谢谢!
...全文
186 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tc125948067 2009-05-04
  • 打赏
  • 举报
回复
学习了
UDX协议 2009-05-01
  • 打赏
  • 举报
回复
这个问题,应该是和你的设置的时间戳有关系。
播 放太慢了。

你可以仔细听一下你的回放,是不是慢放?


这个时间是可以计算的,非常精准才行。或者,你设置时间戳为0。尽快的播 放,就不会慢了。
stupidcdog66 2009-04-25
  • 打赏
  • 举报
回复
請問你是在mobile環境實作的嗎?你是怎麼去將接收到的packet,與directshow建立filter?

可以提供些相關的source code參考嗎?

謝謝你
banshake 2009-04-21
  • 打赏
  • 举报
回复
在Push Source的Pin上增加SetRate函数,如果应用程序中改变了速率,会最终把参数传到SetRate中去

2,553

社区成员

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

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