資源描述:
《展看用visualbasic實現(xiàn)多畫面播放功能》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、展看用VisualBasic實現(xiàn)多畫面播放功能所謂動態(tài)畫中畫,指的是在大畫面視頻播放時,小畫面在大畫面中也播放另外的畫面,或者是兩個畫面都在做某種活動。筆者前段時間用VisualBasic開發(fā)了一個vcd播放程序,可以實現(xiàn)以下功能:(1)可以多屏播放,也就是畫中畫功能,可同時播放幾個不同的畫面;(2)可以同時播放cd-rom中的視頻音頻文件(當(dāng)然,在硬盤中播放速度會更快些)(3)支持多種文件格式(如.dat、.ov、.mmm、.mid、.rmi、.mpg、.mpa、.mpv等);(4)自帶畫面美觀且功能齊全的c
2、d播放程序;(5)增強了鼠標(biāo)的右鍵功能,用它可以控制各畫面的大小(1/16、1/4、1/2、1、2倍和全屏)、播放、暫停等;(6)控制聲音、圖像、時間/幀顯示轉(zhuǎn)換、自動重播等;(7)控制條隨意拖動播放,再加上定時播放、自定義播放時間等播放方式,可使您更加舒服地控制vcd;(8)屏幕可隨意拖動,畫面可任意放縮。vcd中的影像文件都在光盤的mpegav目錄下,文件名只有兩種:avxeq01.dat或music01.dat(假如是音樂版的卡拉ok,則還有music02.dat等。)可視動畫控件activemovie是
3、microsoft公司的控件,從不成熟的1.0、1.2到2.0,每次都有了很大的改進(jìn),如1.0版本中有幾個屬性是只讀的(例如,displaymode只能為amvtime,而不能改為amvframes)。該控件支持音頻文件(.id、.rmi)、影片文件(.avi、.mov、.mmm、.mpeg、.mpg、.mpa、.mpv)和vcd文件(.dat)等。播放時若用鼠標(biāo)右鍵單擊畫面,則可以直接對畫面的播放、暫停、停止等進(jìn)行控制,讀者還可以自行在“屬性”欄中對影片播放進(jìn)行控制設(shè)置,諸如設(shè)置“播放次數(shù)”、“音量”、“影片
4、大小(1/16、1/4、1/2、1、2倍和全屏”、“面板”、“顏色”、“過濾器”等。這種技術(shù)的實現(xiàn)實際上是vb調(diào)用activemovie控制器來完成的,而activemovie控制器內(nèi)嵌了microsoftmpeg音頻解碼器和microsoftmpeg視頻解碼器。首先,我們建立一個“項目”,依次選擇“項目/部件”,然后添加microsoftactivemoviecontrol(amovie.ocx)、microsoftmandialogcontrol(dlg32.ocx),控件即出現(xiàn)在“工具箱”中。將上述兩個控
5、件加進(jìn)窗體,再單擊“菜單”工具欄,建立一個主菜單項:“文件”(file)及其子菜單項:“打開a畫面”(opena)。在opena中加進(jìn)如下代碼:privatesubopena-click()onerrorresumenextmondialog1.filter="videofile(*.dat)∣*.dat∣oviefile(*.mov)∣(*.mov)∣mediafile(*.mmm)∣(*.mmm)∣midfile(*.mid;*.rmi)∣(*.mid;*.rmi)∣mpegfile(*.mpeg)∣(*.
6、mpeg)∣allfile(*.*)∣*.*"mondialog1.filterindex=1mondialog1.shoove1.filename=mondialog1.filenameactivemove1.height=form1.heightactivemove1.1.ove1.runendsub這是對單個的activemovie1進(jìn)行控制。還可以在“文件”(file)中依次加進(jìn)子菜單:“打開b畫面”(openb)、“打開c畫面”(openc),并相應(yīng)地加進(jìn)activemovie2、activemovi
7、e3等多個畫面,將上述程序代碼略為改動后加進(jìn)。這樣,當(dāng)您按下f5鍵即運行程序,打開您想要播放的vcd文件就可以欣賞vcd了。在屏幕上單擊右鍵,還可以控制畫面呢!現(xiàn)在是否就滿足了呢?不行!我們再增加一個用鼠標(biāo)任意拖動屏幕的功能:privatesubactivemovie1-mousedown(buttonasinteger,shiftasinteger,xassingle,yassingle)activemovie1.drag1x1=xy1=yendsub我們還增加了一個定義任意播放時間的主菜單項:“時間”(ti
8、me)及其子菜單項:“畫面a時間”(settimea):privatesubsettimea-click()onerrorresumenextdimrasintegerr=inputbox("請輸進(jìn)時間(分鐘:0-60)")r=r*60activemovie1.currentposition=int(r)activemovie1.runendsubcurrentposition是控制v