1.我现在是通过调用windows media player 来实现播放,那如果电脑没有windows media player 是不是就不能播放了
2.好像还有其他类似windows media player 播放媒体文件的控件,
3.看别人用API来实现播放音频,但又说api 对文件路径很挑剔,想做强大的播放器api 只能靠边站,。请教:怎么做做出来的播放器会比较强大点?(千千静听和酷狗是用api 来播放的吗)
2.好像还有其他类似windows media player 播放媒体文件的控件,
3.看别人用API来实现播放音频,但又说api 对文件路径很挑剔,想做强大的播放器api 只能靠边站,。请教:怎么做做出来的播放器会比较强大点?(千千静听和酷狗是用api 来播放的吗)
还有一种做法就是用 DirectShow 来做,你可以选择你喜欢的技术来实现。
说到强大,要看你的目的是什么,何为强大。如果单纯是指支持的文件格式而言,都差不多,
因为如果系统中没有安装相关文件的解码器,同样都是不支持。但如果有解码器,基本都能
支持。如果是看对媒体的基本控制,两者都能做得不错,什么音量呀、声道呀、播放进度等
这些两者都可以很容易的实现控制。但是如果要做如控制媒体色彩、混合媒体、调整软波表
等,用 DirectShow 就强于 MCI 函数,因为 DirectShow 中的有个机制可以专门处理这些
过程。至于 DirectShow 的使用,你可以下载一下 DirectX SDK 来看看,里面有相关范例,
但是因为 DirectShow 对 VB 的支持只是很少的一部分,他标准的支持环境是 VC,所以有
些东西只能拿 VC 来弄。
个人建议,如果要求不是很高,用 MCI 来实现比较好,当然,在 VB 层面 DirectShow 会
更加简单,但这东西在 VB 中玩不深,就像用控件一样实现几个最基本的功能。如果你打算
用 VB 来玩多媒体这块,用 MCI 应该能满足你大部分的需求了。
而 DirectShow 只是 DX 里的一个处理多媒体的接口。对于 VB 的支持微软提供了 COM
组件形式的接口,在 VB 中就是那种用工程菜单下选引用的东西,也可以用 CreateObject
创建出来的对象,不是控件(ActiveX),而是组件(COM/COM+)。但在VC里还提供了静态库
的类,由于VB不能这么调用VC的类,所以有些东西不能在VB里直接这么使用,当然如果你在
VC里把他封装成COM或ActiveX给VB调用也可以,但既然在VC里弄完整的封装他了,为什么
不直接在VC里做完剩余的一点事呢?
还有,歌手信息这类东西和解码器无关,通常解码器只是对流媒体的数据流进行解码工作,
而这些信息通常是根据文件格式的几个基本的逻辑偏移便可得到,所以一般这种功能不会直接
通过这类组件得到相关信息,可以自己在软件中取得。至于 Media Player 控件是否做了针对
多种文件格式的这类信息的识别我不太清楚,不过 Media Player 的软件是有一些支持的,
但他的软件未必就是单纯的壳子,里面也会处理一些特殊的东西的。