多音轨wma格式音频选择音轨问题
在大部分播放器中,包括暴风影音和千千静听等都不能对多语言音轨的wma格式音频进行音轨选择操作。windows media player可以进行音轨选择。
在使用directshow做自己的播放器时,有时会有特殊需求需要选择音轨,但又同时不能用wmplayer时,就需要自己实现音轨选择功能了。
实现方案
dshow的WMASFReader Filter提供了IWMReaderAdvanced, IWMReaderAdvanced2接口,但并未提供SetStreamsSelected等wmfsdk的用于选择音轨的接口,所以,WMASFReader 是用不了了,只能自己写过一个sourcefilter。关于sourceFilter的列子可以参考directshow实务精选里的Appendix_D/FilterQQSource。可以直接在上面改,然后在里面使用WMFormat的IWMReaderAdvanced接口来进行wma文件的读取和音轨的选择。关于使用wmformat读取文件可以参考sdk里的sample,也可参考<windows media编程向导>里的samples/Players例子,可以直接使用例子提供的一个wmreader类来进行读文件。
如有改进建议或意见,或有应用需求,请联系QQ:22154912
详细代码请见:
http://www.mingjianhua.com/post/65.html