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

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

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


...全文
236 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
分别对两个文件打开两个声音设备,然后切换,可以用音量调节切换,当然也可以用其他的方法
  • 打赏
  • 举报
回复
相关推荐
发帖
多媒体/流媒体开发

2505

社区成员

专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
帖子事件
创建了帖子
2005-08-09 03:10
社区公告
暂无公告