在c#編程的時候,由于一個功能需要播放一小段的avi格式的短片,結果找了半天也沒有搞定如何來進行播放。于是本人在網上查呀查呀!找了半天終于找到了一個方法播放文件。
他的方式是首先用下面的命令為媒體播放器控件:msdxm.ocx 生成 mediaplayer.dll 和 axmediaplayer.dll。命令為:aximp c:/winnt/system32/msdxm.ocx 而通常msdxm.ocx中的activex控件都未注冊! 再運行regsvr32 msdxm.ocx手動注冊便生成需要的動態連接庫文件。
但是我發現他所用的mediaplayer控件是可以播放許多的媒體文件.但是并不能滿足我所需要的情況。我的情況是用c#播放一小段avi文件,并且背景要透明,而不是黑色,或其他顏色,我找了半天也不能找到什么方法可以使mediaplayer播放的文件為透明的狀態,十分郁悶!
但是隨后我發現其他用vb的程序中可以實現這個功能,讓我十分的高興,于是我又打開了vb的代碼進行了詳細的查看,發現在vb中有一個控件為animation可以播放avi文件,而且其有一個屬性選項是使背景透明。正好能夠滿足我的需要.可是這也是一個ocx的控件,于是,我先把該控件找到,位置是:c:/windows/system32/comct32.ocx,然后我運行regsvr32進行手動注冊,注冊完畢以后我就在環境中進行引用,如下圖:
(但是,后來本人發現原來這個根本不用regsvr32注冊,因為.net早已經注冊了,郁悶中~~~~~~~~~~~~~~)
然后把控件拖入到窗體中,布好了局,將其屬性autoplay設置為true,然后在代碼中寫入下邊一句話即可:
private void form1_load(object sender, system.eventargs e)
{
this.axanimation1.open(application.startuppath + @"/filecopy.avi");
}
這樣當窗體加載的時候就會自動的播放這一小段avi文件了.
其實,這個問題并不是很難,主要是本人對com組件并不是特別熟悉的過.只要熟悉這些組件的功能,以及運行的原理,勢必會大大的提高我們的編程的效率。
新聞熱點
疑難解答