freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于java的mp3播放器的設(shè)計(jì)與實(shí)現(xiàn)-wenkub

2022-12-14 19:30:03 本頁面
 

【正文】 更新信息 信息 更新 讀取 讀取 更新 圖 32 相互關(guān)系圖 用戶界面模塊 為了實(shí)現(xiàn)軟件產(chǎn)品界面的友好性和簡潔性,同時(shí)又要保證功能的完整性,播放器的控制窗口的設(shè)計(jì)顯得更是不同一般的重要。 用戶界面模塊 媒體文件的管理功能:添加歌曲、添加目錄,刪除歌曲、清空列表、保存列表和裝載列表; 除了最基本的操作以外,優(yōu)秀的播放器還提供了許多附加 的功能來突出顯示該媒體播放器的特色,例如本播放器的歌詞實(shí)時(shí)顯示。類似的,只要 Controller 改變了 View, View 會(huì)從潛在的 Model 中獲取數(shù)據(jù)來刷新自己。 3.當(dāng) Controller 關(guān)閉時(shí),它將產(chǎn)生關(guān)閉事件。 JMF 中的 Controller 對(duì)象,例如播放器( Player)和處理器( Processor),以及 Control 對(duì)象,例如 GainControl 都可以發(fā)出 MediaEvent 事件。在任何時(shí)候,當(dāng)一個(gè) JMF 對(duì)象需要報(bào)告當(dāng)前的狀態(tài),它將發(fā)出一個(gè) MediaEvent 事件 。 CaptureDeviceManager:該管理器中保存了截取設(shè)備的注冊(cè)信息。使用 Manager 對(duì)象可以創(chuàng) 建 Player、Processor、 DataSource 和 DataSink對(duì)象。在 VideoFormat 中則描述了視頻數(shù)據(jù)的類型如 等。它并不包括編碼參數(shù)和全局時(shí)間信息。 圖 22 處理器的狀態(tài)轉(zhuǎn)換圖 數(shù)據(jù)池( DataSink) 數(shù)據(jù)池( DataSink) 用來讀取數(shù)據(jù)源( DataSource)的媒體數(shù)據(jù)和輸出到特定的目的地 —— 這里的目的地不同于以上所說的如音箱或屏幕。 Configuring:當(dāng)調(diào)用 configure( )方法后,處理器對(duì)象進(jìn)入該狀態(tài)。 播放器( Player) 如 圖 21 所 示,播放器( Player) 對(duì)象將音頻、視頻數(shù)據(jù)流作為輸入,然后將數(shù)據(jù)流輸出到音箱或屏幕上,就像播放器讀取 DV 帶中的數(shù)據(jù),然后將音頻信號(hào)送到音箱上,視頻數(shù)據(jù)送到屏幕上一樣。當(dāng)創(chuàng)建了 DataSource 對(duì)象后,可以將它送入Player 對(duì)象中,而 Player 對(duì)象不需要關(guān)心 DataSource 中的多媒體是如何獲得的,以及格式是什么 。 數(shù)據(jù)池( DataSink) 數(shù)據(jù)源( DataSource) 提供多種媒體格式的同步和控制功能 是輕量級(jí)的 另外,標(biāo)準(zhǔn) JDK 發(fā)行版不包括 JMF 而包括 Java Sound。此外, JMF 軟件中包括了一個(gè)開放的媒體架構(gòu),可使開發(fā)人員靈活采用各種媒體回放、捕獲組件,或采用他們自己的 定制的內(nèi)插組件。多線程與動(dòng)態(tài)執(zhí)行的 二、相關(guān)技術(shù)簡介 關(guān)于 JMF 技術(shù) JMF( Java Media Framework) , Java 媒體架構(gòu),是對(duì)應(yīng) Java 2 平臺(tái)標(biāo)準(zhǔn)版 (J2SE)的一種可選用的應(yīng)用編程接口 ( API) 軟件包,它為音頻和視頻等媒體內(nèi)容的捕獲、回放、傳輸和編碼轉(zhuǎn)換等提供了一個(gè)統(tǒng)一的架構(gòu)??偟恼f來, Java 編程語言是 此外,在內(nèi)存管理方面, Java 在其虛擬機(jī)內(nèi)部實(shí)現(xiàn)了垃圾內(nèi)存自動(dòng)回收功能,能夠自動(dòng)判斷那些內(nèi)存不再被用戶使用,這樣就讓用戶在系統(tǒng)設(shè)計(jì)時(shí)從繁雜的內(nèi)存管理工作中解脫出來。 其次, Java 具有絕對(duì)的平臺(tái)無關(guān)性,其使用一種虛擬機(jī)作為中間層來屏蔽平臺(tái)差異。 Java的多態(tài)主要是建立在后期綁定( Late Bingding)或叫動(dòng)態(tài)綁定( Dynamic Binding)基礎(chǔ)之上的,這樣 Java 先天就具備了對(duì)對(duì)象類型的自動(dòng)判斷能力。 當(dāng)微軟 Windows 的局限性和缺點(diǎn)開始暴露出來的同時(shí),多 樣 化的操作系 統(tǒng)平臺(tái)如 Solaris, Linux 以及 MacOS 等操作系統(tǒng)各自擁有不俗的表現(xiàn)以及龐大的用戶群。如今 , 軟件市場上的媒體播放器 百花齊放,如: MediaPlayer,酷我音樂盒 和 千千靜聽等。高音質(zhì)播放和 低內(nèi)存消耗是各種媒體播放器所追求的目標(biāo)。面 對(duì) 繁多的操作系 統(tǒng) 平臺(tái),一款具有通用性的音 頻 播放軟件 則 是必不可少的。 而 C++是不支持動(dòng)態(tài)綁定的,綁定動(dòng)作發(fā)生在編譯期而不是執(zhí)行期,所以 C++要實(shí)現(xiàn)多臺(tái)的效果必須要使用虛函數(shù)。 Java 的源程序經(jīng)過編譯產(chǎn)生類文件,類文件結(jié)構(gòu)不同于傳統(tǒng)的編譯器生成的二進(jìn)制文件,必須經(jīng)過虛擬機(jī)的解釋才能運(yùn)行,因此 Java 被認(rèn)為是一種解釋性語言。 C 和 C++語言分配的內(nèi)存空間必須由用戶在不使用的時(shí)候進(jìn)行回收,容易產(chǎn)生內(nèi)存回收不充分的問題,形成內(nèi)存漏洞。簡單與面向?qū)ο蟮? JMF 技術(shù)提供了先進(jìn)的媒體處理能力,從而擴(kuò)展了 Java 平臺(tái)的功能 。 Java Media Framework( JMF) 是構(gòu)建在 Java Sound 之上的一層 。 Java Sound: 本身支持相對(duì)較少的音頻格式( AIFF、 WAV 和 AU) 當(dāng)前沒有與任何 JDK 一起提供 媒體定位器( MediaLocator) 數(shù)據(jù)格式( Format) 媒體定位器( MediaLocator) DataSource 通常用兩種方式來定義,媒體定位器( MediaLocator)或 URL( Universal Resource Locator)。 圖 21 處理器模型 如圖 22 所示,除了在播放器中提到了的 6 種狀態(tài)以外,處理器對(duì)象還包括兩種新的狀態(tài)。在該狀態(tài)下處理器對(duì)象連接到數(shù)據(jù)源并獲取輸入數(shù)據(jù)的格式信息。一個(gè)特定的DataSink 或把數(shù)據(jù)輸出到一個(gè)文件,或通過網(wǎng)絡(luò)傳輸數(shù)據(jù),或進(jìn)行 RTP 廣播。只是描述了該格式的編碼名稱和數(shù)據(jù)類別。 圖 23 表示 JMF 對(duì)音頻格式和視頻格式的定義: 圖 23 JMF的媒體數(shù)據(jù)格式 管理器( Manager) JMF 提供了下面四種管理器 ( Manager) : MediaEvent 的子類包括 ControllerEvern, DataSinkEvent, GainChangeEvent, RTPEvent。( Player和 Processor 繼承于 Controller類 所有的 Controller 事件, ControllerEvent 由 Controller(如 Player 或Processor)產(chǎn)生,可分為三類:改變通知( change notification),關(guān)閉事件( closed event),狀態(tài)轉(zhuǎn)變事件( transition event): 1 . 改 變 通 知 事 件 如 RateChangeEvent , DurationUpdateEvent ,F(xiàn)ormatChangeEvent表明一些 Controller 的屬性的改變。 三、系統(tǒng)架構(gòu)和功能模塊分析 模式概述 MVC 架構(gòu)是“ ModelViewController”的縮寫, 即將“模型 視圖 控制”作為應(yīng)用程序構(gòu)成的三要素。相應(yīng)地,本軟件也同樣使用 MVC 思想指導(dǎo)設(shè)計(jì),做到模塊細(xì)化,分工明確,模塊間邏輯順序清晰的三大目標(biāo)。 在這樣的情況下,對(duì)播放器的設(shè)計(jì)目標(biāo)要求有如下功能的實(shí)現(xiàn): 音頻文件信息顯示功能:將音頻文件的基本信息呈現(xiàn)給用戶,同時(shí)用戶自己可以設(shè)置一些信息。 播放控制模塊 首先,給出該界面的組件組成。各面板關(guān)系如圖 33: 播放信息模塊 用戶界面模塊 播放控制模塊 播放列表控制模塊 歌詞控制模塊 播放列表 歌曲信息 圖 33 面板關(guān)系圖 播放信息模塊 放信息模塊由播放信息,播放列表,歌曲信息節(jié)點(diǎn)三個(gè)層次嵌套而成,如 34 所示: 圖 34 信息模塊關(guān)系圖 音頻文件播放邏輯 對(duì)音頻文件的傳遞 音頻文件的傳送主要是用在播放列表處理的過程中,當(dāng)播放器的用戶想利用本播放器來播放一個(gè)音頻文件時(shí),首先要做的就是將該音頻文件所在磁盤上的地址傳到播放列表模塊中 ,由播放列表將信息傳遞給播放信息模塊進(jìn)行數(shù)據(jù)更新。 對(duì)歌詞文件的傳遞 詞的實(shí)時(shí)顯示作為本播放器的重要功能, LRC 歌詞文件的處理流程也就顯得至關(guān)重要,因?yàn)?LRC 歌詞可能處于不同位置,所以其地址和數(shù)據(jù)處理流程要比音頻文件的處理流程要 復(fù)雜得多。 播放控制流程 器 Player 從建立之初到消亡,各有一系列已經(jīng)在 JMF 中編寫好的方法可以調(diào)用。在 Eclipse啟動(dòng)后,要真正用到某個(gè)插件是,該插件才會(huì)被動(dòng)態(tài)載入內(nèi)存,不再被使用的插件會(huì)在適當(dāng)?shù)臅r(shí)候被清出內(nèi)存,本系統(tǒng)使用到的典型插件的例子就是用于開發(fā)圖形界面的 VisualEditor 用戶界面模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 戶界面的主要有三大任務(wù),即 播放控制模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 放功能是媒體播放器所有控制功能中最重 要的一個(gè)功能,沒有了它,播放器不能播放,也就不能稱之為播放器了。 用播放狀態(tài)的當(dāng)前播放文件創(chuàng)建一個(gè)分配好資源處于就緒狀態(tài)的播放器 ().getCurrentsonginfo().setTotalTime((().getSeconds() / 10E6) / )。 private JSlider volumnSlider = null。 private JLabel playLabel = null。 private JButton playlistButton = null。 private JButton nextButton = null。 private JFrame playListFrame = null。 private JButton removeButton = null。 private JFrame mergeFrame = null。 private PlayerCTL playerCTL = new PlayerCTL()。 private int cutFrameState = 。 private JLabel jLabel = null。 private JButton cutExecButton = null。 private JTextField mergedFilePath = null。 private JPanel jContentPane3 = null。 private WindowDragControl windowDragControl = new WindowDragControl(this)。//文件名 absolutepath=()。//月 lastm
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1