[摘要]多媒體設計是一門集計算機技術和數字多媒體技術于一體的綜合設計。Visual Basic.NET是下一代的Visual Basic,Visual Basic.net是Microsoft公司開發(fā)的新一代窗體編程工具軟件,由于它具有先進的設計思想,使之成為多媒體應用程序開發(fā)的理想工具,其提供的Flash控件是多媒體控制接口,利用這個接口跳過硬件訪問并調用本地的符合其規(guī)格的多媒體解碼驅動,進而實現Flash文件的播放。
[關鍵詞]多媒體 VB.net Flash控件
一、引言
在當今信息社會,以多媒體為特征的信息技術和信息產業(yè)的發(fā)展及應用對人類社會產生的影響和作用愈來愈明顯,愈來愈重要。多媒體開發(fā)用到的媒體不再局限于傳統(tǒng)程序設計用到的數值、文本,還包括圖形、圖像、聲音和動畫等媒體,其所涉及的信息范圍和空間大為擴展。其次,多媒體開發(fā)將使用戶不再僅僅被動地接受信息,而且可以主動地參與到整個信息交流過程中去。它向用戶提供更加有效的控制和使用信息的手段及方法,同時也為應用開辟了更加廣闊的領域。多媒體開發(fā)可做到讓用戶自由地控制和干預信息的處理,增加對信息的注意力和理解,延長信息的保留時間。再次,在多媒體開發(fā)過程中不僅要集成多媒體信息,還要集成與之有關的工具和設備。多媒體開發(fā)要使各種信息媒體成為一個有機的整體,以便實現信息的充分共享和操作。
Visual Basic.NET是下一代的Visual Basic,是Microsoft公司開發(fā)的Windows編程工具軟件,Visual Basic.NET現在完全集成在其它的Microsoft Visual Studio .NET語言中,由于它具有先進的設計思想、快速易掌握的使用方法及控制媒體對象手段靈活多樣等特點,受到了多媒體軟件開發(fā)人員的關注和青睞,也因此成為多媒體應用程序開發(fā)的理想工具,以下為具體設計實現過程。
二、信息界面的設計與實現
首先為窗體添加一個panel控件,再在該控件上添加flash控件ShockWaveFlash,設置panel和flash控件的dock屬性都為fill。為實現全屏顯示做準備。然后,再為其添加一個菜單資源和狀態(tài)欄。一個菜單系統(tǒng)(打開,播放,退出,全屏,顯示播放狀態(tài)信息),為實現從文件打開flash文件,需要給窗體添加一個openfiledialog控件,為了實現顯示播放進度,需要一個timer控件實現計時功能。該內容將在狀態(tài)欄中顯示。在應用程序窗體中添加一個Flash控件后就可以通過它來打操作Flash文件。在實現過程中,會遇到一個新問題:如何實現和關閉全屏顯示,為了解決這個問題,可以通過以下幾個方面來實現:(1)將ShockWaveFlash控件的dock屬性設為Fill。(2)由于ShockWaveFlash沒有邊界,需要添加一個panel控件,可以實現邊框的效果。(3)設置好屬性后,就是要實現全屏,執(zhí)行特定代碼,首先要設置窗體的formborderstyle為none,這樣就沒有標題欄;然后將菜單項的visible屬性設為False,這樣菜單也沒有了,就可以實現全屏。
實現全屏工作還沒結束,要退出全屏,通常按esc鍵退出,就需要對onkeypress事件進行編程。當然還需要把窗體的keypreview屬性設為真。以下是實現的主要代碼:
‘初始化窗體操作
Private sub form1_load(byval sender as object,byval e as system.eventargs) handles mybase.load
Openfiledialog1.filter=”flash文件(*.swf)|*.swf”
Statusbar1.visible=1
Statusbar1.panels(0).text=”等待”
Statusbar1.panels(1).text=””
Statusbar1.panels(2).text=””
Statusbar1.panels(3).text=””
Statusbar1.panels(4).text=”Flash播放器”
Panel1.dock=dockstyle.fill
End sub
‘編寫菜單項事件處理函數
Private sub退出_click(byval sender as system.object,byval e as system.eventargs) handles退出.click
Me.close()
End sub
Private sub打開_click(byval sender as system.object,byval e as system.eventargs) handles打開.click
If(openfiledialog1.showdialog()=dialogresult.ok) then’打開文件成功,則進行播放
If(axshockwaveflash1.isplaying=true)then
axshockwaveflash1.movie= openfiledialog1.filename
me.text= openfiledialog1.filename
axshockwaveflash1.play()
timer1.enabled=true
狀態(tài).enabled=true
End if
End if
End sub
‘關閉全屏顯示,同時附加對狀態(tài)欄的處理
Private sub form1_keypress(byval sender as object,byval e as system.windows.forms.keypresseventargs) handles mybase.keypress
Dim keyascii as short=asc(e.keychar)
If keyascii as short=asc(e.keychar)
If fullscreen=true then
Fullscreen=1
Me.windowstate=formwindowstate.normal
Me.formborderstyle= formborderstyle.sizable
Me.location=oldpoint
Me.width=oldwidth
Me.height=oldheight
播放.visible=true
Statusbar1.visible=狀態(tài).checked
Else
End if
Else
End if
If keyascii=0 then
e.handled=true
end if
End sub
‘編寫timer1控件處理函數,來動態(tài)顯示正在播放的flash文件的信息
Private sub timer1_tick(byval sender as system.object,byval e as system.eventargs) handles timer1.tick
If(axshockwaveflash1.isplaying=true)then
Statusbar1.panels(0).text=”總共”
Statusbar1.panels(1).text= axshockwaveflash1.totalframes.tostring()+”幀”
Statusbar1.panels(2).text=”正在播放第”
Statusbar1.panels(3).text= axshockwaveflash1.currentframe.tostring()+”幀”
End if
End sub
三、結束語
綜上所述,利用Visual Basi.net中的Flash控件開發(fā)WINDOWS下的Flash文件播放器是一種方便簡單的方法,但對于事件處理函數和全屏效果的實現,需要對控件有足夠的熟悉,當然,還可以利用WINDOWS系統(tǒng)的與媒體播放有關的API函數,設計出功能更強的應用程序。
參考文獻:
[1]田原,等.清華大學出版社,2006,12.
[2]龔沛曾,等.Visual Basic程序設計教程.高等教育出版社,2004,7.
(作者單位:河南焦作師范高等??茖W校)