用Delphi在局域网中实现网上影院
陈经韬
相信用过<<超级解霸>>的人都知道里面有个"接收网络DVB广播",可以在局部网
中实现一台计算机播放视频文件而另一台接收.因为DVB设计的知识面太广,下面
我们用另外一个巧妙的思路来实现局部网中的"网络播放".
因为涉及到多媒体文件的播放,所以我们在程序中使用了一个 Mediaplay控件,
但是很多使用过这个控件做播放器的人都遇到过这样一个问题:就是在播放MPG
等扩展名的文件时出现"MCI初始化错误",如果安装了WindvdPlayer后又没有问题
了,怎么回事呢?现在市面上所有的有关DELPHI多媒体编程的书都没有讲到这个问
题和如何解决.原来,我们要自己修改win.ini里面[mci extensions]小节,另外还
要修改一下system.ini里面的[mci]小节.举例说,你想让Mediaplay可以播放MPG
为扩展名的文件时,可以按照如下格式修改:
[mci extensions]
mpeg=MPEGVideo
mpg=MPEGVideo
...
在这里,我们写了个自定义函数WriteMciConfig来达到这一目的,详细代码请
看源程序.
procedure TForm1.WriteMciConfig;
{定义一个过程,向ini文件写一些配置信息,
以便系统能调用相应驱动程序来播放文件,
注意:如果不这样做Mediaplay控件打开某
些扩展名的文件时会发生什么MCI初始化
错误,很多人相信已经吃过这个苦头}
begin
WritePrivateProfileString('mci extensions', 'mpg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'dat', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpv', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpeg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'cjt', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'avi', 'AVIVideo', 'win.ini');
WritePrivateProfileString('mci', 'MPEGVideo', 'mciqtz.drv', 'system.ini');
WritePrivateProfileString('网络多媒体播放器', '作者', '陈经韬', 'netplay.ini');
WritePrivateProfileString('网络多媒体播放器', '版本', '演示版', 'netplay.ini');
end;