在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 媒體播放

媒體播放

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇媒體播放范文,相信會(huì)為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

媒體播放范文第1篇

【關(guān)鍵詞】多媒體;API函數(shù);VB;播放器

1.引言

多媒體技術(shù)是一種把文本(Text)、圖形(Graphics)、圖像(Images)、動(dòng)畫(Animation)和聲音(Sound)等形式的信息結(jié)合在一起,并通過計(jì)算機(jī)進(jìn)行綜合處理和控制,能支持完成一系列交互式操作的信息技術(shù)。多媒體技術(shù)的發(fā)展改變了計(jì)算機(jī)的使用領(lǐng)域,使計(jì)算機(jī)由辦公室、實(shí)驗(yàn)室中的專用品變成了信息社會(huì)的普通工具,廣泛應(yīng)用于工業(yè)生產(chǎn)管理、學(xué)校教育、公共信息咨詢、商業(yè)廣告、軍事指揮與訓(xùn)練,甚至家庭生活與娛樂等領(lǐng)域。

媒體播放器的設(shè)計(jì)是一門集計(jì)算機(jī)技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設(shè)計(jì)。隨著中國計(jì)算機(jī)技術(shù)、寬帶網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的人開始重視多媒體播放器的發(fā)展與應(yīng)用。

2.系統(tǒng)的規(guī)劃與研究

播放器的開發(fā)階段有設(shè)計(jì)、編碼和測試3個(gè)基本活動(dòng)組成,其中,“設(shè)計(jì)階段”是獲取高質(zhì)量、易維護(hù)系統(tǒng)的一個(gè)最重要環(huán)節(jié)。采用任一種軟件設(shè)計(jì)方法都將產(chǎn)生系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)的數(shù)據(jù)設(shè)計(jì)和系統(tǒng)的過程設(shè)計(jì),如圖1所示,描述了播放器開發(fā)過程的信息流程。

3.播放器的設(shè)計(jì)與實(shí)現(xiàn)

利用Visual Basic 中的Windows Media Player控件開發(fā)Windows下的多媒體應(yīng)用程序是一種方便簡單的方法。

播放器的主界面,遵照界面簡潔、操作簡單、人性化的原則進(jìn)行設(shè)計(jì)。主要包括播放控制主界面的設(shè)計(jì)、視頻顯示區(qū)域的設(shè)計(jì)即可視化界面的設(shè)計(jì)、播放列表界面的設(shè)計(jì)、相關(guān)信息顯示區(qū)域的設(shè)計(jì)等。

媒體播放器主要的功能是播放音頻文件和視頻文件兩種,音頻播放主要實(shí)現(xiàn)對目前常用的音頻文件進(jìn)行播放,如:mp3、wav、mid、rmi、midi、au等等??梢酝瓿刹シ帕斜韺?dǎo)入和保存、文件打開和播放信息顯示等功能。

視頻播放主要實(shí)現(xiàn)對常用的視頻文件進(jìn)行播放,如:avi、mpeg、rm、rmvb等等??梢詫?shí)現(xiàn)可視化窗口的全屏幕播放和原始大小播放、可視效果切換等功能。

另外,播放器在實(shí)現(xiàn)視頻全屏幕播放后,沒有用原有的控制對象標(biāo)志,而是將它在屬性欄中隱藏了。其按鍵功能由播放控制面板命令按鈕來實(shí)現(xiàn),控制按鈕上顯示功能漢字信息,在命令按鈕事件中,實(shí)質(zhì)上是調(diào)用Windows Media Player控件中屬性的各項(xiàng)功能。圖2為播放器的功能模塊圖。

4.總結(jié)

該設(shè)計(jì)關(guān)鍵采用了VB 6.0環(huán)境中的Windows Media Player控件,可以播放Windows Media Player所支持的文件格式,包括音頻文件、視頻文件、動(dòng)畫等,如不能播放視頻文件,需要安裝相應(yīng)的解碼器,如Real Codec Pack等。與其它播放播放器相比,該播放器具有支持格式多樣、界面美觀、功能齊全、占用空間小的特點(diǎn)。與現(xiàn)有多媒體資源應(yīng)用狀況緊密結(jié)合,既具有很強(qiáng)的直觀感,又不失一般性。

參考文獻(xiàn)

[1]彭波,孫一林.多媒體技術(shù)應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006:1-21.

[2]趙子江.多媒體技術(shù)應(yīng)用教程[M].北京:機(jī)械工業(yè)出版社,1957:1-18.206-207.

[3]陳明.多媒體技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2004:5-10.

[4]洪錦魁.精通Visual Basic 6.0中文版[M].北京、廣州、上海:世界圖書出版社,2000.

[5]劉炳文.Visual Basic圖形與多媒體程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002:5-28.

[6]魏江江,林少景.Visual Basic API編程百例通[M].北京:科學(xué)出版社,2001.

[7]譚浩強(qiáng),薛淑斌,袁玫編著.Visual BASIC程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000:256-266.

[8]高智勇.Visual BASIC 6.0實(shí)例教程[M].北京:航空工業(yè)出版社,2000.

[9]Michael Halvorson.Visual Basic6學(xué)習(xí)指南[M].北京:機(jī)械工業(yè)出版社,1999.

[10]劉炳文.精通Visual Basic 6.0中文版[M].北京:電子工業(yè)出版社,1999.

媒體播放范文第2篇

關(guān)鍵詞: 流媒體; JSP; Html5; Chrome瀏覽器; 視頻控制

中圖分類號:TP37 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)18-0191-03

Design and Implementation of Playing Streaming Media Based On JSP

YANG Zi-xiang,LIN Peng

(Tianjin Open University, Tianjin 300191, China)

Abstract: With the development of Internet, playing web video is more and more on web. However, if playing the video through the HTML5 or the Html tag, then dragging and dropping the video only after the completion of the video completely downloaded before using. Through research and analysis principles of streaming media server of Windows Media Services, and research Http package of Chrome browser, the paper successfully devised playing streaming media with JSP program. By publishing program on Tomcat, users can drag and drop the video during playback, successfully resolving the problem of the HTML5 or the Html tag with not drag.

Key words:Streaming Media; JSP; Html5; Chrome browser; Video Control

1 概述

隨著Internet的發(fā)展,網(wǎng)頁視頻播放的使用越來越多。因此,視頻播放的用戶體驗(yàn)也越來越實(shí)用;視頻的播放、暫停、定點(diǎn)播放等操作的需求也就越來越大,而且也更符合用戶實(shí)際瀏覽視頻的要求。但是,目前如果直接通過HTML5的或者Html的標(biāo)簽播放視頻的話,視頻的拖拽功能只有在視頻完全下載完成后才能使用。這就會(huì)加大服務(wù)器的壓力,因此越來越多的用戶開始使用流媒體。

所謂流媒體是指采用流式傳輸?shù)姆绞皆贗nternet播放的媒體格式。流媒體又叫流式媒體,它是指商家用一個(gè)視頻傳送服務(wù)器把節(jié)目當(dāng)成數(shù)據(jù)包發(fā)出,傳送到網(wǎng)絡(luò)上。用戶通過解壓設(shè)備對這些數(shù)據(jù)進(jìn)行解壓后,節(jié)目就會(huì)像發(fā)送前那樣顯示出來。流媒體的出現(xiàn)極大地方便了人們的工作和生活。目前,使用流媒體的話都會(huì)通過流媒體服務(wù)器(比如Windows Media Services等)來搭建流媒體平臺[1-4]。

JSP作為一種網(wǎng)頁開發(fā)語言,在網(wǎng)站的開發(fā)中使用者的比例很大;因此,使用JSP開發(fā)的網(wǎng)站對視頻播放的需求也會(huì)越來越多。但是,如果直接通過JSP后臺平臺結(jié)合HTML5的標(biāo)簽進(jìn)行視頻播放的話,就會(huì)出現(xiàn)網(wǎng)頁中視頻無法拖拽,從而不能實(shí)現(xiàn)定點(diǎn)播放等功能。所以,通過JSP語言實(shí)現(xiàn)視頻的流媒體播放對于JSP網(wǎng)站來說,不僅可以省去借助流媒體服務(wù)器的煩惱,而且可以實(shí)現(xiàn)在線視頻播放的隨意控制,從而滿足用戶的實(shí)際需求。

2 基于流媒體服務(wù)器的網(wǎng)頁播放探究

流媒體服務(wù)器的使用,解決了視頻播放過程中,直接訪問網(wǎng)絡(luò)視頻資源導(dǎo)致的視頻拖拽問題。因此,流媒體服務(wù)器的網(wǎng)頁視頻資源的訪問方式對于本文的設(shè)計(jì)來說,具有很大的價(jià)值。Windows Media Services作為一種流媒體服務(wù)器,是Windows Server服務(wù)器系統(tǒng)中使用頻率很高而且性能很好的流媒體服務(wù)器。本文通過Chrome瀏覽器訪問Windows Media Services中視頻資源的流程研究發(fā)現(xiàn),在視頻拖拽的控制中,Chrome瀏覽器都會(huì)發(fā)送Http請求包;Windows Media Services接收到瀏覽器的請求后,再根據(jù)Http中包含的內(nèi)容返回相應(yīng)的視頻片段。具體的流程如圖1所示。

如圖1中流媒體視頻在Chrome瀏覽器和Windows Media Services流媒體服務(wù)器之間的交互可以看出,無論視頻的播放還是中間視頻播放控制,都是Chrome發(fā)送Http包進(jìn)行控制;而Windows Media Services流媒體服務(wù)器則是負(fù)責(zé)對視頻片段的返回。因此,本文使用Chrome瀏覽器訪問對已經(jīng)在Windows Media Services流媒體服務(wù)器中的視頻,通過Chrome瀏覽器中的Network網(wǎng)絡(luò)工具,對Http包進(jìn)行抓取。圖2中顯示的是視頻點(diǎn)擊開始播放后,即視頻從頭開始播放,抓取的Http請求包的頭文件內(nèi)容。圖3和圖4中顯示的則是視頻播放過程中點(diǎn)擊視頻任意位置后,抓取的Http請求包的頭文件內(nèi)容。

3 基于JSP的在線流媒體播放的實(shí)現(xiàn)

在第二節(jié)中,本文通過Chrome的Http包的追蹤功能,截取了視頻在播放控制過程中不同播放位置請求的包。通過圖2、圖3和圖4的追蹤結(jié)果可以看到他們的Request Headers以及Response Headers中的部分頭文件字段是不同的,具體的信息比較如表1所示。

由表1中可以看到,三個(gè)圖中的Http包中只有Range、Content-Range字段是不同的,其他的字段的內(nèi)容根本就沒有發(fā)生變化。其中,Range是Request Headers中的字段,Content-Range是Response Headers中的字段。在表1中還可以發(fā)現(xiàn),Content-Range字段的內(nèi)容和Range字段的內(nèi)容有一定的關(guān)系;Content-Range內(nèi)容中“-”前的數(shù)值和Range是一致的。同時(shí),在表1中也可以發(fā)現(xiàn),Content-Range字段和Content-Length字段有一定的關(guān)系;Content-Range內(nèi)容中“/”后的數(shù)值和Content-Length是一致的。我們知道,Http包中的Content-Length的作用主要是記錄文件的長度,因此可以在服務(wù)器端通過程序求出文件的大小。

由于Http包中的Request Headers是由瀏覽器進(jìn)行發(fā)出并封裝的,因此本文的程序無法控制包中的Request Headers內(nèi)容。但是,Http包中的Response Headers是由服務(wù)器封裝后返回給瀏覽器的;因此,本文的程序設(shè)計(jì)將會(huì)根據(jù)Http包中的Request Headers字段內(nèi)容,對Http包中的Response Headers字段進(jìn)行封裝返回給服務(wù)器。根據(jù)以上的分析,本文通過JSP進(jìn)行程序設(shè)計(jì)如下:

@RequestMapping(value = { "/videos/{path}" })

public String displayVideo(HttpServletRequest request,

HttpServletResponse response, @PathVariable String path) {

try {String filePath = videoDir + path + ".mp4";

File file = new File(filePath);

if (!file.exists()) {

response.sendError(404);

LOG.error("未找到文件" + file.getCanonicalPath());}

Long fileLength = file.length();

LOG.debug("文件找到了,大小為" + fileLength);

String range = request.getHeader("range");

if (range != null && !range.equals("")) {

LOG.debug("請求的名字是range,內(nèi)容是" + range); }

Long startPos = 0l;

if (range != null && !range.equals("")) {

Pattern pattern = Pattern

.compile("^bytes\\=(\\d+)(?:\\-(\\d+)?)?$");

Matcher matcher = pattern.matcher(range);

LOG.debug(matcher.matches());

startPos = Long.parseLong(matcher.group(1), 10);

LOG.debug("成功截獲range,開始位置是" + startPos);

response.setStatus(206);

} else {

response.setStatus(200);

LOG.debug("從頭開始傳送");}

InputStream is = new FileInputStream(file);

OutputStream os = response.getOutputStream();

byte[] buffer = new byte[1024];

response.addHeader("Content-Range", "bytes " + startPos + "-"

+ (fileLength - 1) + "/" + fileLength);

response.addHeader("Content-Length", fileLength.toString());

response.setCharacterEncoding("UTF-8");

response.setContentType("video/mp4");

response.setHeader("Accept-Ranges", "bytes");

is.skip(startPos);

int length = is.read(buffer);

while (length > 0) {

os.write(buffer, 0, length);

length = is.read(buffer); }

os.flush();

os.close();

is.close();

} catch (Exception err) {

if (err.getClass()

.getName()

.equals("org.apache.catalina.connector.ClientAbortException")) {

LOG.debug("客戶掛斷了");

} else {

err.printStackTrace();}}

return null; }

在本文的程序設(shè)計(jì)中,瀏覽器的視頻請求URL路徑的后端是通過JSP中的Spring框架進(jìn)行控制,在路徑中的/videos/{paths}即是視頻路徑存儲(chǔ)在磁盤的相對位置;在程序中,視頻的讀取并沒有經(jīng)過中間的流媒體服務(wù)器,而是直接讀取在磁盤中的視頻文件。經(jīng)過程序在Tomcat7上測試之后,視頻在播放的過程中,用戶可以根據(jù)需求隨意拖拽,解決了Html5中標(biāo)簽不能播放的問題。具體的如圖5所示,圖中顯示的是程序后視頻隨意播放截取的Http包。經(jīng)比較,與文中的圖3、圖4中間播放的Http包的內(nèi)容是相似的,實(shí)現(xiàn)了流媒體播放的效果。

4 結(jié)論

本文通過分析Windows Media Services流媒體服務(wù)器中視頻拖拽播放控制過程中,Chrome瀏覽器發(fā)送的Http包的信息,得出了瀏覽器播放視頻時(shí)播放控制和Http包中Request Headers、Response Headers頭文件的關(guān)系。并且,本文通過JSP程序語言的設(shè)計(jì),成功實(shí)現(xiàn)了流媒體服務(wù)器控制視頻播放的原理。本文設(shè)計(jì)的程序到Tomcat后,經(jīng)過該程序訪問的視頻都可以在瀏覽器端隨意拖拽播放視頻,解決了Html5的標(biāo)簽不能直接播放服務(wù)器磁盤中視頻的弊端,也省去了流媒體服務(wù)器視頻的任務(wù)。

參考文獻(xiàn):

[1] 蔣太杰. Windows Media Services及其在遠(yuǎn)程教育中的應(yīng)用[J]. 指揮技術(shù)學(xué)院學(xué)報(bào), 2001, 12(6): 81-85.

[2] 王雪婷, 于勇. Windows Media Services流媒體技術(shù)與實(shí)現(xiàn)[J]. 信息技術(shù)與信息化, 2006(1): 51-53+64.

媒體播放范文第3篇

1、在“初始化”圖標(biāo)窗口中初始化所用變量,輸入如下:

startframe:=1

endframe:=1

2、“電影”圖標(biāo)的設(shè)置。雙擊此圖標(biāo),出現(xiàn)的屬性窗口設(shè)置如下:

1) Concurrency選項(xiàng)設(shè)置為“Concurrent”,其作用是在運(yùn)行電影圖標(biāo)的同時(shí)運(yùn)行下面的交互圖標(biāo),以激活控制按鈕。

2) Play選項(xiàng)設(shè)置為“Fixed Number of Times”,并在下面的輸入框中輸入1,作為播放的次數(shù)。

3) 在Start Frame中輸入變量“startrame”,在End Frame中輸入變量“endframe”。由于這兩個(gè)變量初值都是1,運(yùn)行時(shí)電影會(huì)靜止在第一幀,播放則由下面的按鈕控制。

3、按鈕響應(yīng)的設(shè)置。分別雙擊交互圖標(biāo)右側(cè)的五個(gè)按鈕響應(yīng)標(biāo)志,在打開的屬性窗口中,選中“Perpetual”,Branch選項(xiàng)設(shè)為“Return”,并適當(dāng)調(diào)整五個(gè)按鈕的位置和大小。

4、各種控制的實(shí)現(xiàn)。

1) 在“從頭播放”圖標(biāo)中輸入:

startframe:=1

endframe:=MediaLength@"電影"

MediaPlay(IconID@"電影")

其中系統(tǒng)變量MediaLength作用是返回指定數(shù)字電影的長度。

2) 在“暫停播放”圖標(biāo)中輸入:

MediaPause (IconID@"電影",True)

函數(shù)MediaPause 用來暫停一個(gè)媒體文件的播放。

3) 在“繼續(xù)播放”圖標(biāo)中輸入:

startframe:=MediaPosition@"電影"

endframe:=MediaLength@"電影"

MediaPlay(IconID@"電影")

系統(tǒng)變量MediaPosition用來指示媒體文件播放到的當(dāng)前位置。

4) 在“逐幀向后”圖標(biāo)中輸入:

startframe:=MediaPosition@"電影"

endframe:= MediaPosition@"電影"+1

MediaPlay(IconID@"電影")

5) 在“逐幀向前”圖標(biāo)中輸入:

startframe:=MediaPosition@"電影"

endframe:= MediaPosition@"電影"-1

媒體播放范文第4篇

關(guān)鍵詞:移動(dòng)互聯(lián)網(wǎng) iOS系統(tǒng) 流媒體 軟件設(shè)計(jì)

中圖分類號:TN919.8 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2012)12-0116-01

流媒體主要是指在互聯(lián)網(wǎng)中,對播放的媒體格式采用流式傳輸?shù)姆绞竭M(jìn)行傳播。移動(dòng)流媒體技術(shù)的應(yīng)用,實(shí)現(xiàn)了在移動(dòng)設(shè)備上進(jìn)行視頻播放的功能。隨著互聯(lián)網(wǎng)技術(shù)和智能手機(jī)的盛行,流媒體技術(shù)在智能手機(jī)中的運(yùn)用,滿足了消費(fèi)了移動(dòng)互聯(lián)的需求,此時(shí)的智能手機(jī)在操作系統(tǒng)方面也呈現(xiàn)出多樣化的發(fā)展,其中iPhone OS系統(tǒng)成為最受歡迎的系統(tǒng)之一,其軟件數(shù)量的增長速度非???。

1、iPhone OS系統(tǒng)平臺及開發(fā)工具

iPhone OS也稱之為iOS,是蘋果公司專門為iPhone所開發(fā)的一款操作系統(tǒng),在蘋果系列產(chǎn)品中陸續(xù)套用,該系統(tǒng)最大的優(yōu)勢在于人機(jī)操作及UI設(shè)計(jì)非常優(yōu)秀,攜帶軟件種類比較豐富。

1.1 系統(tǒng)架構(gòu)

iOS系統(tǒng)主要分為四個(gè)部分:核心操作系統(tǒng)層、核心服務(wù)層、媒體曾及可輕觸層。核心操作系統(tǒng)層位于系統(tǒng)架構(gòu)的最底層,包括文件系統(tǒng)、電源管理、內(nèi)存管理及一些操作系統(tǒng)個(gè)任務(wù),能與硬件設(shè)備直接進(jìn)行交互。核心服務(wù)層的作用是輔助訪問iPhone OS系統(tǒng)。媒體層的作用是通過它來實(shí)現(xiàn)各種媒體文件在應(yīng)用程序中得以使用,可以進(jìn)行視頻和音頻的錄制,繪制圖形及制作簡單的動(dòng)畫等??奢p觸層位于最上層,為應(yīng)用程序提供各種有用框架,大部分和用戶界面相關(guān),實(shí)質(zhì)上就是對設(shè)備上的觸摸交互操作進(jìn)行控制。

1.2 開發(fā)工具

在進(jìn)行iOS系統(tǒng)開發(fā)中,蘋果公司主要采用iPhone SDK開發(fā)工具包,在標(biāo)準(zhǔn)C++編程語言基礎(chǔ)上,通過該軟件翻譯為Objective-C語言,這種語言是蘋果標(biāo)準(zhǔn)語言,然后編譯為iPhone軟件格式。蘋果公司為開發(fā)人員還提供集成開發(fā)環(huán)境Xcode,主要用于iPhone應(yīng)用程序,該開發(fā)工具屬于一條龍式的應(yīng)用程序,可以用作構(gòu)建應(yīng)用、代碼編輯及程序調(diào)試等,是一種快捷的方式,該工具也可以進(jìn)行輔助開發(fā)影城程序、數(shù)據(jù)庫、工具、嵌入包及驅(qū)動(dòng)程序等。此外,iOS開發(fā)工具中,最重要的一個(gè)工具就是iPhone模擬器,是一種重要的測試應(yīng)用程序工具。

2、流媒體播放器軟件設(shè)計(jì)

從iPhone,iPad等移動(dòng)設(shè)備的實(shí)際應(yīng)用中,蘋果公司對實(shí)現(xiàn)流媒體技術(shù)開發(fā)了HTTP Live Streaming協(xié)議。在該協(xié)議中,音頻、視頻文件均有服務(wù)器提供給客戶端。所以,該軟件系統(tǒng)的結(jié)構(gòu)主要分為服務(wù)器端與客戶端。

2.1 系統(tǒng)服務(wù)器端設(shè)計(jì)

該協(xié)議技術(shù)的服務(wù)器組成包含兩個(gè)部分:編碼器與流分割器。其主要能使對輸入的視頻或者音頻媒體內(nèi)容進(jìn)行編碼,封裝為適合的內(nèi)容格式進(jìn)行傳送。編碼器的主要作用是對輸入的視頻、音頻文件采用H.264標(biāo)準(zhǔn)進(jìn)行編碼,然后采用MPEG-2輸出,流分割器軟件將文件分割為等間隔的片段,保存成.ts文件。分割器完成后,都會(huì)生成一個(gè)新媒體文件,通過索引文件進(jìn)行地質(zhì)的跟蹤與查找,可以通過對分割文件進(jìn)行加密處理。

2.2 系統(tǒng)客戶端設(shè)計(jì)

通過iPhone OS平臺設(shè)計(jì),視頻模塊通過流媒體播放器對網(wǎng)站中的資源進(jìn)行播放。通過流媒體播放器,用戶能夠之間觀看到網(wǎng)站中的視頻,還可以進(jìn)行分享。其中,視頻模塊主要包含以下頁面:

(1)熱門視頻播放列表。直接在主頁面上點(diǎn)擊“視頻”,系統(tǒng)就會(huì)進(jìn)入到熱門視頻播放列表,表示當(dāng)前網(wǎng)站最熱門的視頻,列表將視頻的主要信息呈現(xiàn)出來,橙色字體為視頻標(biāo)題。點(diǎn)擊任意一行即可進(jìn)入視頻介紹頁面。點(diǎn)擊“返回”即可退回主頁面。點(diǎn)擊右上角“刷新”,可以對當(dāng)前頁面進(jìn)行刷新。

(2)同類視頻播放列表。視頻列表對所有的視頻全部通過分類列出,選中任意類別即可進(jìn)入到該類視頻播放列表,與熱門視頻播放列表相同,每一行都對視頻主要信息進(jìn)行羅列,進(jìn)入視頻播放頁面及返回上一列表的方法都是相同的。不同的是這部分增設(shè)了分頁功能,如果視頻數(shù)量過多,無法在一頁顯示,則可以點(diǎn)擊列表最后一行的“更多”進(jìn)行查看。

(3)視頻簡介頁面。不管是在熱門視頻列表或者是分類視頻列表中選中任意一個(gè)視頻以后,即可進(jìn)入到簡介頁面,橙色字體是視頻的標(biāo)題,黑色字體為視頻內(nèi)容簡介。點(diǎn)擊右下角“播放”就可以觀賞視頻。如果通過簡介對該視頻沒有興趣,可以返回上一層,重新選擇,如果喜歡該視頻,并且想與朋友一起分享,可以點(diǎn)擊“分享”,將視頻鏈接到微博中。

(4)視頻播放界面。點(diǎn)擊“播放”就可以對視頻進(jìn)行觀看,也就進(jìn)入到了視頻播放界面。如果對正在播放的畫面進(jìn)行點(diǎn)擊,就可以對播放運(yùn)行的狀態(tài)進(jìn)行控制,包含暫停、播放、快進(jìn)、快退等,通過右上角的“完成”實(shí)現(xiàn)對視頻播放的控制,此外,還可以實(shí)現(xiàn)全屏播放。

(5)視頻分享界面。進(jìn)行視頻分享的時(shí)候,點(diǎn)擊”分享”即可進(jìn)行分享界面??梢赃x擇所要分享到的地址,通過授權(quán)然后登陸地址以后進(jìn)行分享,視頻就可以分享到該鏈接地址。不管是要分享到何處,所要采取的操作原理都是一樣的,如果不想分享,直接點(diǎn)擊取消就可以返回到視頻簡介頁面。

3、結(jié)語

隨著網(wǎng)路技術(shù)的飛速發(fā)展,移動(dòng)通信行業(yè)真正的步入了移動(dòng)信息的時(shí)代,智能手機(jī)的普及,使應(yīng)用軟件呈現(xiàn)出多樣化的發(fā)展趨勢。流媒體播放器軟件屬于諸多應(yīng)用程序中的一種,盡管與PC產(chǎn)業(yè)還有一定的差距,但其發(fā)展速度驚人,必定會(huì)在不久的將來迎頭趕上。

參考文獻(xiàn)

[1]施佳子.iPhone平臺移動(dòng)流媒體播放器的實(shí)現(xiàn)與優(yōu)化[J]. 華中科技大學(xué),2009(1).

[2]葉汝軍,丁建峰.虛擬存儲(chǔ)技術(shù)在流媒體管理系統(tǒng)中的應(yīng)用[J].黑龍江科技信息,2008(25).

媒體播放范文第5篇

關(guān)鍵詞:ActiveX;外部函數(shù);菜單;按鈕;滑塊;播放器

中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)11-20329-03

1 前言

Authorware作為一種主要面向非程序員的優(yōu)秀的交互式多媒體創(chuàng)作工具,為了滿足一些高級設(shè)計(jì)人員進(jìn)行復(fù)雜程序創(chuàng)作的需要,Authorware從4.0版本開始提供了對ActiveX控件和外部函數(shù)的支持,由于有許多軟件廠商支持ActiveX技術(shù),所以大多數(shù)功能都能找到相應(yīng)的ActiveX控件。在Authorware中,通過調(diào)用ActiveX控件來直接使用現(xiàn)成的程序模塊,可省掉許多繁瑣的編程,而且?guī)缀蹩梢酝瓿扇魏喂ぷ鳌?/p>

目前,媒體播放器越來越追求個(gè)性化,為了滿足個(gè)性化的需求,我們可以借助圖形圖像處理軟件使播放界面?zhèn)€性化,在Authorware 7.0中利用控件以及外部函數(shù)能設(shè)計(jì)出播放各種媒體的個(gè)性化播放器。在設(shè)計(jì)視頻播放控制時(shí),要注意播放、暫停、繼續(xù)、停止、快進(jìn)、后退等操作的激活條件,進(jìn)度滑塊及音量滑塊能及時(shí)地響應(yīng)交互。在Authorware 7.0中設(shè)計(jì)的媒體播放器運(yùn)行界面如圖1所示。

2 ActiveX控件的應(yīng)用

ActiveX控件通常以動(dòng)態(tài)鏈接庫的形式存在,其設(shè)計(jì)思想是將一個(gè)程序嵌入到另一個(gè)程序中,這樣就可使它能夠隨意地應(yīng)用到各種場合。ActiveX控件的數(shù)據(jù)輸入和函數(shù)功能執(zhí)行都必須通過容器,因此ActiveX控件和容器之間必須有一些特定的接口協(xié)議。ActiveX控件必須具備屬性(property)、方法(method)和事件(event),通過屬性的名稱、方法的名稱及參數(shù),容器可以存取和改變ActiveX控件的屬性參數(shù)。通過事件,比如屬性參數(shù)的改變、用戶按下鼠標(biāo)左鍵等,ActiveX控件通知容器進(jìn)行響應(yīng)相關(guān)操作。

2.1 ActiveX控件的安裝

在開發(fā)Authorware的應(yīng)用程序時(shí),如果利用了ActiveX控件,在打包時(shí)要注意兩點(diǎn):(1)在用戶的應(yīng)用程序中需附帶上所需的支持文件,即在應(yīng)用程序的“Xtras”目錄里附帶上Activex.x32,因?yàn)橹挥羞@樣應(yīng)用程序才能夠正常地執(zhí)行,否則程序中的ActiveX控件是無法使用的。但是需要注意的是打包程序無須附帶上Actxpriv.x32,否則會(huì)造成不可預(yù)料的后果,因?yàn)樗饕?fù)責(zé)設(shè)計(jì)時(shí)利用ActiveX控件的界面。(2)要將所需的ActiveX控件相關(guān)文件(*.OCX或*.DLL)復(fù)制到硬盤相應(yīng)的文件夾中(Windows NT以后的操作系統(tǒng)是%systemroot%\system32),本播放器應(yīng)用程序在設(shè)計(jì)時(shí)需要復(fù)制MSDXM.OCX、COMDLG32.OCX、FM20.DLL、FM20CHS.DLL四個(gè)文件,然后將其在Windows系統(tǒng)中注冊。

2.2 ActiveX控件的注冊

設(shè)計(jì)Authorware應(yīng)用程序時(shí),如果要使用Authorware沒有提供的控件,使用前要先在Windows中進(jìn)行手動(dòng)注冊。如果我們的程序中使用了控件且要交給用戶使用,在程序中應(yīng)先檢測用戶機(jī)中是否注冊了該控件,若沒有就要進(jìn)行自動(dòng)安裝、自動(dòng)注冊。本播放器使用時(shí)需要檢測Microsoft Forms 2.0 ScrollBar、Microsoft Common Dialog Control和Windows Media Player三個(gè)控件,以便確定是否要安裝、注冊。

注冊的方法有兩種:

(1)手動(dòng)注冊

方法:先將所需的ActiveX控件相關(guān)文件(如MSDXM.OCX、COMDLG32.OCX、FM20.DLL、FM20CHS.DLL)復(fù)制到硬盤相應(yīng)的文件夾中(Windows NT以后的操作系統(tǒng)是%systemroot%\system32)。然后手動(dòng)注冊,即單擊Windows的“開始”菜單,選擇“運(yùn)行”命令,在打開的對話框中輸入以下命令: regsvr32.exe,如regsvr32.exe MSDXM.OCX。

regsvr32.exe是Windows自帶的ActiveX注冊工具,可以在Windows的系統(tǒng)目錄中找到。

(2)自動(dòng)注冊

方法:利用Authorware 中的Xtra ActiveX 里的函數(shù)來進(jìn)行注冊。對ActiveX控件注冊的格式如下: ActiveXControlRegister("")。

本播放器應(yīng)用程序使用了三個(gè)控件,圖2是媒體播放器設(shè)計(jì)窗口。

圖標(biāo)FileDialog負(fù)責(zé)打開文件,用的是Microsoft Common Dialog Control控件;圖標(biāo)VolumeBar負(fù)責(zé)音量調(diào)節(jié),圖標(biāo)PositionBar負(fù)責(zé)進(jìn)度處理,兩者用的是同一種控件Microsoft Forms 2.0 ScrollBar;圖標(biāo)MediaPlay負(fù)責(zé)媒體播放,用的是Windows Media Player控件。在計(jì)算圖標(biāo)Register中設(shè)置程序進(jìn)行自動(dòng)檢測、安裝和注冊,程序如下:

――獲取三個(gè)控件的classID

classIDScrollBar:="{DFD181E0-5E2F-11CE-A449-00AA004A803D}"

classIDDialog:="{F9043C85-F6F2-101A-A3C9-08002B2F49FB}"

classIDMediaplay:="{22D6F312-B0F6-11D0-94AB-0080C74C7E95}"

――獲取系統(tǒng)文件夾

WindowsPath:=getosdirectory()

――判斷當(dāng)前系統(tǒng)是否支持控件注冊

if ActiveXInstalled()=-1 then

――判斷Microsoft Forms 2.0 ScrollBar滾動(dòng)條控件是否已安裝

if ActiveXControlQuery(classIDScrollBar)=0 then

――拷貝FM20.DLL和FM20CHS.DLL兩個(gè)文件到系統(tǒng)目錄

CopyFile(FileLocation^"FM20.DLL",WindowsPath^"\\system32\\FM20.DLL")

CopyFile(FileLocation^"FM20CHS.DLL",WindowsPath^"\\system32\\FM20CHS.DLL")

――注冊Microsoft Forms 2.0 ScrollBar滾動(dòng)條控件

ActiveXControlRegister(WindowsPath^"\\system32\\FM20.DLL")

end if

――判斷、注冊Microsoft Common Dialog Control,version 6.0通用對話框控件

if ActiveXControlQuery(classIDDialog)=0 then

CopyFile(FileLocation^"COMDLG32.OCX",WindowsPath^"\\system32\\COMDLG32.OCX")

ActiveXControlRegister(WindowsPath^"\\system32\\COMDLG32.OCX")

end if

――判斷、注冊Windows Media Player 6.4控件

if ActiveXControlQuery(classIDMediaplay)=0 then

CopyFile(FileLocation^"MSDXM.OCX",WindowsPath^"\\system32\\MSDXM.OCX")

ActiveXControlRegister(WindowsPath^"\\system32\\MSDXM.OCX")

end if

end if

3 彈出式菜單

現(xiàn)在許多播放器都有彈出式菜單功能,如在圖1中的MENU按鈕上單擊時(shí)會(huì)出現(xiàn)有“打開文件”、“全屏播放”和“退出”三個(gè)子菜單項(xiàng)的菜單,且單擊某個(gè)子菜單項(xiàng)時(shí)執(zhí)行相應(yīng)操作。其設(shè)計(jì)原理是創(chuàng)建菜單、激活菜單、響應(yīng)子菜單項(xiàng)。

3.1 創(chuàng)建菜單

計(jì)算圖標(biāo)BuildMenu中的程序負(fù)責(zé)創(chuàng)建菜單,mCreatePopupMenu()、mAppendMenu( Menu, Flags , MenuID , MenuText )、mMenuHookOn( WindowHandle )函數(shù)都置于外部函數(shù)budmenu.u32中,使用時(shí)需載入到Authorware中,程序如下:

――選擇的菜單項(xiàng)的ID的初值

LastMenuID := -1

――添加一個(gè)filename主菜單項(xiàng)

filemenu := mCreatePopupMenu()

mAppendMenu( filemenu , 0 , 10 , "打開文件")

mAppendMenu( filemenu , 0 , 11, "全屏播放")

mAppendMenu(filemenu,2048,0,"")

mAppendMenu( filemenu , 0 , 12 , "退出")

――設(shè)置與Authorware通信的消息鉤子

mMenuHookOn( WindowHandle )

3.2 激活菜單

為了確保交互靈活,按鈕響應(yīng)MenuActivation的響應(yīng)需設(shè)為永久、返回,該響應(yīng)包含的兩個(gè)計(jì)算圖標(biāo)FileMenuTrack和ReturnLastMenuID的順序不可顛倒。

(1)計(jì)算圖標(biāo)FileMenuTrack的程序?yàn)椋?/p>

――激活菜單

mTrackPopupMenu(filemenu,0,ResponseLeft@“MenuActivation”+WindowLeft,ResponseTop@“MenuActivation”+ResponseHeight@“MenuActivation”+WindowTop,0,WindowHandle,0 )

(2)計(jì)算圖標(biāo)ReturnLastMenuID的程序?yàn)椋?/p>

――獲取最后選擇的菜單項(xiàng)的ID

LastMenuID := mGetLastMenuID()

Checked@"MenuActivation" := FALSE

3.3 響應(yīng)子菜單項(xiàng)

根據(jù)獲取的最后選擇的子菜單項(xiàng)的ID 值來執(zhí)行相應(yīng)的響應(yīng)為永久、返回的條件響應(yīng):LastMenuID=10 、LastMenuID=11和LastMenuID=12,從而實(shí)現(xiàn)文件打開、全屏播放和退出。

(1)計(jì)算圖標(biāo)LastMenuID=10的程序?yàn)椋?/p>

――打開文件

SetSpriteProperty(@"FileDialog", #dialogtitle, "請選擇一個(gè)視頻文件:")

SetSpriteProperty(@"FileDialog", #BaseURL, FileLocation)

SetSpriteProperty(@"FileDialog", #filter, "視頻文件|*.mpg;*.avi;*.mpeg;*.dat;*.asf")

CallSprite(@"FileDialog", #showopen)

getFile:=GetSpriteProperty(@"FileDialog", #FileName)

SetSpriteProperty(@"MediaPlay", #FileName,getFile)

SetSpriteProperty(@"MediaPlay",#displaysize,4)

CallSprite(@"MediaPlay",#play)

LastMenuID:=-1

(2)計(jì)算圖標(biāo)LastMenuID=11的程序?yàn)椋?/p>

――設(shè)置為全屏播放

SetSpriteProperty(@"MediaPlay",#displaysize,3)

LastMenuID:=-1

3)計(jì)算圖標(biāo)LastMenuID=12的程序?yàn)椋?/p>

――退出

mMenuHookOff()

mDestroyMenu(filemenu)

Quit()

4 按鈕控制

4.1 按鈕激活條件

在設(shè)計(jì)按鈕控制時(shí),要合理設(shè)置播放(從頭開始)、暫停、繼續(xù)、停止(回到開頭)、快進(jìn)、后退等按鈕的激活條件,文件沒打開所有按鈕應(yīng)不可用,播放時(shí)繼續(xù)按鈕應(yīng)處于隱藏狀態(tài),暫停時(shí)停止按鈕不可用但繼續(xù)按鈕激活,停止時(shí)暫停按鈕不可用且繼續(xù)按鈕隱藏,視頻正常播放結(jié)束時(shí)暫停、停止、快進(jìn)不可用且繼續(xù)隱藏。

4.2 程序設(shè)置

為了實(shí)現(xiàn)上述要求,在設(shè)計(jì)時(shí)每一個(gè)按鈕交互都要從兩方面考慮:激活條件和程序內(nèi)容。

play:激活條件為playfile"",計(jì)算圖標(biāo)內(nèi)容為:

SetSpriteProperty(@"MediaPlay", #CurrentPosition,1)

CallSprite(@"MediaPlay", #Play)

pause:激活條件為(playstate=2)&(CurrentPosition

CallSprite(@"MediaPlay", #Pause)

resume:激活條件為(playstate=1)&(CurrentPosition

CallSprite(@"MediaPlay", #Play)

stop:激活條件為(playstate=2)&(CurrentPosition

SetSpriteProperty(@"MediaPlay", #CurrentPosition,1)

CallSprite(@"MediaPlay", #stop)

fastforward:激活條件為CurrentPosition

Duration:=GetSpriteProperty(@"MediaPlay", #Duration)

CurrentPosition:=GetSpriteProperty(@"MediaPlay", #CurrentPosition)

if CurrentPosition

NewPosition:=CurrentPosition+15

else

NewPosition:=Duration

end if

SetSpriteProperty(@"MediaPlay", #CurrentPosition,NewPosition)

CallSprite(@"MediaPlay", #play)

fastreverse:激活條件為CurrentPosition>1,計(jì)算圖標(biāo)內(nèi)容為:

Duration:=GetSpriteProperty(@"MediaPlay", #Duration)

CurrentPosition:=GetSpriteProperty(@"MediaPlay", #CurrentPosition)

if CurrentPosition>15 then

NewPosition:=CurrentPosition-15

else

NewPosition:=0

end if

SetSpriteProperty(@"MediaPlay", #CurrentPosition,NewPosition)

CallSprite(@"MediaPlay", #Play)

5 滑塊控制進(jìn)度及音量

5.1 滑塊作用

拖動(dòng)水平滑塊,調(diào)整文件播放進(jìn)度,且滑塊在水平滾動(dòng)條上的位置與文件當(dāng)前進(jìn)度的百分比一致。拖動(dòng)垂直滑塊,調(diào)整音量大小,且滑塊在垂直滾動(dòng)條上的位置與系統(tǒng)音量大小的百分比一致。

5.2 事件響應(yīng)設(shè)置

在兩個(gè)事件響應(yīng)BarSetMaster和BarSetPosition中,響應(yīng)都設(shè)為永久、返回,事件響應(yīng)BarSetMaster的事件設(shè)為發(fā)送“圖標(biāo)VolumeBar”的事件“Change”, 事件響應(yīng)BarSetPosition的事件設(shè)為發(fā)送“圖標(biāo)PositionBar”的事件“Change”。

(1)計(jì)算圖標(biāo)BarSetMaster內(nèi)容為:

volume:=GetSpriteProperty(@"VolumeBar",#value)

baSetVolume("master",100-volume)

(2)計(jì)算圖標(biāo)BarSetPosition內(nèi)容為:

position:=GetSpriteProperty(@"PositionBar",#value)

Duration:=GetSpriteProperty(@"MediaPlay", #Duration)

CurrentPosition:=position/100*Duration

SetSpriteProperty(@"MediaPlay", #CurrentPosition,CurrentPosition)

CallSprite(@"MediaPlay", #Play)

PauseFlag:=1

6 結(jié)束語

在Authorware中如果能夠合理地運(yùn)用ActiveX控件和外部函數(shù),個(gè)性化媒體播放器可以設(shè)計(jì)的非常完善,各種功能都能實(shí)現(xiàn),即使是滑塊動(dòng)態(tài)地顯示當(dāng)前進(jìn)度、播放狀態(tài)等也能較好地解決。

參考文獻(xiàn):

[1] 畢廣吉.Authorware多媒體開發(fā)程序設(shè)計(jì)與典型實(shí)例[M].北京:人民郵電出版社,2004.

青川县| 南京市| 河池市| 天台县| 泌阳县| 收藏| 长兴县| 察雅县| 丁青县| 承德县| 祁门县| 邵阳县| 鄄城县| 洞口县| 高平市| 敖汉旗| 武乡县| 右玉县| 寿光市| 广南县| 理塘县| 海阳市| 大余县| 天长市| 桦南县| 新营市| 布拖县| 桃江县| 牟定县| 响水县| 屏东市| 大名县| 平远县| 邢台县| 五常市| 荆州市| 甘肃省| 包头市| 苏尼特右旗| 云梦县| 赣榆县|