在网上看了很多人二次开发写的Flash播放器,都是在安装的Flash播放后,用拖Flash控件的方式写的。在下载其代码后,在未装Flash播放器的电脑上调试该程序100%报错。为什么了呢?
本人比较了拖控件方式和手工直接引入AxInterop.ShockwaveFlashObjects.dll 和Interop.ShockwaveFlashObjects.dll方式的代码的区别,发现,在手工引入的方式下,在为视频文件制定路径前,先为其绑定可见界面(窗口或Panel)才能避免系统报错。代码如下:
using AxShockwaveFlashObjects;//引用Flash控件
........
AxShockwaveFlash flash = new AxShockwaveFlash(); //声明控件
private void button1_Click(object sender, EventArgs e) //打开并播放Flash,
{
flash.Parent = this; //this代表本窗体,此句必需写在前面,然后才能为其赋值视频路径等
......
flash.Movie = "视频文件路径";
flash.play();
......
}