最近一段时间,在CSDN和DFW上常看见问于切换音轨和切换声道的问题。在这做一个小结。大家可以转载。让菜鸟收益! 转载时,作者希望在最大程度上保持原有信息!
1、什么是声(音)轨、声道?
在早先的VCD时代,一个媒体文件只有一个音轨。故“音轨”一词不常被人们提及。VCD媒体文件中的伴唱或原唱,只有通过切换左右声道来实现。
音轨是随着DVD而来的“产物”。在DVD(MPEG2格式)媒体文件中,一个音轨来记录一个语种(在VOD中常说的“原唱”和“伴唱”)。
2、如何切换音轨?
在这里,我推荐使用“Morgan Stream Switcher”Filter。
音轨的切换,一般是使用Filter上实现的IAMStreamSelect接口中的Enable方法。
例:
var
obj: IAMStreamSelect;
begin
if Filter.QueryInterface(IID_IAMStreamSelect, obj) = S_OK then
begin
obj.Enable(Index{音轨}, AMSTREAMSELECTENABLE_ENABLE);
obj := nil;
end;
end;
3、如果切换声道?
切换声道,需要获取Audio Renderer Filter上的IBasicAudio接口(提示:神龙卡的IBasicAudio接口在hardware decoder Filter上获取)。
使用该接口的put_Balance方法即可实现切换声道。
使用Delphi开发多媒体播放音轨问题的FAQ(原创)
最新推荐文章于 2023-08-01 18:47:30 发布