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