如何平滑切换播放两个mp3文件?

辉歌 2005-08-09 03:10:38
由于版权原因,一首卡拉ok歌曲由一支video,一个或两个audio,一个文字,将其同步显示。
其中,audio是用到两个mp3文件,一个mp3是只有乐曲,一个是有乐曲也有歌声。需要像切换声道那样平滑切换这两个文件。

考虑良久,不知道用什么方案好。


...全文
267 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongchaomissyou 2005-08-12
  • 打赏
  • 举报
回复
对每路单独创建音频输出Filter(DirectSound Filter),通过这个FILTER查找到IBasicAudio接口,再调用put_Volume方法。如果是两路声音的话也就是要分别查找到2个IBasicAudio接口,每一个对应一个directsound filter
daizq 2005-08-10
  • 打赏
  • 举报
回复
如果文件大小,时间一样,只要文件定位指针一样就可以切换了,不过要自己写一个File Source.
dongchaomissyou 2005-08-10
  • 打赏
  • 举报
回复
我以前做过多路音频输出的软件,音频输出使用默认的DirectSound Filter,这个FILTER有提供IBasicAudio接口,可以通过他的put_Volume方法实现静音put_Volume(-10000),打开声音时把预先保存的声音大小再写回去就可以了
辉歌 2005-08-10
  • 打赏
  • 举报
回复
to dongchaomissyou(超):

我也打算这么做。只是不知道如何分别控制这两个Render。
辉歌 2005-08-10
  • 打赏
  • 举报
回复
在一个graph中,可以创建两条链。从file1到render1,file2到render2,但是得到的IBasicAudio接口是控制哪条链的啊?我如何单独分别得到每条链的控制?
dongchaomissyou 2005-08-09
  • 打赏
  • 举报
回复
同意oldfriend_2004_5的做法,可以在同一个GRAPH中同时打开Video文件和两个mp3文件

videoFile->splitte Filter-> video dec -> videorender

audiofile(1)->splitte Filter-> audio dec -> Audiorender(1)

audiofile(2)->splitte Filter-> audio dec -> Audiorender(2)

切换声音时只要打开一个AudioRender的声音并且关掉另一个AudioRender的声音即可
oldfriend_2004_5 2005-08-09
  • 打赏
  • 举报
回复
分别对两个文件打开两个声音设备,然后切换,可以用音量调节切换,当然也可以用其他的方法

2,543

社区成员

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

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