內(nèi)附LABVIEW音樂(lè)播放器程序和文檔
LabVIEW早期是為了儀器自動(dòng)控制所設(shè)計(jì),至今轉(zhuǎn)變成為一種逐漸成熟的高級(jí)編程語(yǔ)言。圖形化程序與傳統(tǒng)編程語(yǔ)言之不同點(diǎn)在于程序流程采用"數(shù)據(jù)流"之概念打破傳統(tǒng)之思維模式,使得程序設(shè)計(jì)者在流程圖構(gòu)思完畢的同時(shí)也完成了程序的撰寫。
LabVIEW將創(chuàng)建用戶界面(稱為前面板)的工作自然地融合到開發(fā)周期當(dāng)中。LabVIEW的程序/子程序被稱為虛擬儀器(VI)。每個(gè)VI都有三個(gè)組成部分:程序框圖(Block Diagram)、前面板(Front Panel)和圖標(biāo)/連接器(Icon/Connector)。連接器是用來(lái)供其他的程序框圖調(diào)用本VI之用。程序員可以利用前面板上的控制控件將數(shù)據(jù)輸入正在運(yùn)行的VI,或者用顯示控件將運(yùn)算結(jié)果輸出。前面板還可以作為程序的接口:每個(gè)虛擬儀器(VI)既可以把前面板當(dāng)作用戶界面,作為一個(gè)程序來(lái)運(yùn)行;也可以作為一個(gè)節(jié)點(diǎn)放到另一個(gè)VI程序框圖中,通過(guò)連接器面板連接起來(lái),而前面板則定義VI的輸入和輸出。這意味著每個(gè)VI,在作為子程序嵌入到一個(gè)大型的項(xiàng)目之前,都可以很方便地進(jìn)行測(cè)試。
引 言
第1章 方案設(shè)計(jì)
1.1播放器功能要求
1.2音樂(lè)播放器使用操作描述
1.3方案描述
第2章 前后面板設(shè)計(jì)
2.1前面板設(shè)計(jì)
2.2后面板設(shè)計(jì)
第3章 界面優(yōu)化
第4章 設(shè)計(jì)思路
4.1程序設(shè)計(jì)要點(diǎn)
4.2最終調(diào)試
第5章 總結(jié)
個(gè)人心得
虛擬儀器(英語(yǔ):Virtual instrumentation)技術(shù)就是利用高性能的模塊化硬件,結(jié)合高效靈活的軟件來(lái)完成各種測(cè)試、測(cè)量和自動(dòng)化的應(yīng)用。靈活高效的軟件能幫助您創(chuàng)建完全自定義的用戶界面,模塊化的硬件能方便地提供全方位的系統(tǒng)集成,標(biāo)準(zhǔn)的軟硬件平臺(tái)能滿足對(duì)同步和定時(shí)應(yīng)用的需求。只有同時(shí)擁有高效的軟件、模塊化I/O硬件和用于集成的軟硬件平臺(tái)這三大組成部分,才能充分發(fā)揮虛擬儀器技術(shù)性能高、擴(kuò)展性強(qiáng)、開發(fā)時(shí)間少,以及出色 的集成這四大優(yōu)勢(shì)。 在本次設(shè)計(jì)中,音樂(lè)播放器的基本功能應(yīng)具備隨機(jī)播放、選擇播放、音量調(diào)節(jié)、歌單設(shè)計(jì)、歌詞導(dǎo)入和界面美觀等,如何用LabVIEW進(jìn)行音樂(lè)播放器的設(shè)計(jì)是本次設(shè)計(jì)的目的,實(shí)現(xiàn)基本功能,增添新功能,對(duì)LabVIEW的使用設(shè)計(jì)有更深入的了解和應(yīng)用。 第1章 方案設(shè)計(jì)
1.1播放器功能要求根據(jù)目前我們所接觸到的音樂(lè)播放器來(lái)看,所有的音樂(lè)播放器都能實(shí)現(xiàn)的基本功能為上位機(jī)實(shí)現(xiàn)音樂(lè)的播放,可選擇音樂(lè)路徑進(jìn)行特定音樂(lè)的播放,也可隨機(jī)播放歌單內(nèi)歌曲,并且能夠完成調(diào)節(jié)音量,循環(huán)播放、關(guān)閉單曲循環(huán)以及手動(dòng)導(dǎo)入歌詞等功能。為了更加熟悉掌握LabVIEW的使用方法和提高應(yīng)用其解決實(shí)際問(wèn)題的能力,自己動(dòng)手設(shè)計(jì)一個(gè)音樂(lè)播放器。 1.2音樂(lè)播放器使用操作描述由于對(duì)軟件及相關(guān)知識(shí)理解的程度有限,所設(shè)計(jì)出來(lái)的播放器功能簡(jiǎn)單,且需要特定的操作方法,具體注意事項(xiàng)如下: 1.程序運(yùn)行之后請(qǐng)選歌或隨機(jī)按鍵完成歌曲選擇; 2.切換歌曲步驟:①按下關(guān)閉單曲循環(huán)按鍵;②點(diǎn)擊退出按鍵;③選擇切換歌曲選項(xiàng);④點(diǎn)擊選歌或隨機(jī)按鍵; 3.請(qǐng)?jiān)谕顺霭粹o按下之前關(guān)閉單曲循環(huán); 4.歌詞顯示需手動(dòng)導(dǎo)入。 本次課程設(shè)計(jì)中設(shè)計(jì)的音樂(lè)播放器在程序剛開始運(yùn)行時(shí),默認(rèn)為循環(huán)播放音樂(lè)的模式,如需單曲循環(huán),不用執(zhí)行其他操作。 1.3方案描述在進(jìn)行設(shè)計(jì)之前,首先綜合自己日常生活中使用到的音樂(lè)播放器的功能,進(jìn)行思考,確定出自己在設(shè)計(jì)中所希望實(shí)現(xiàn)的基本功能,并查閱相關(guān)資料。 在進(jìn)行整體設(shè)計(jì)之前,首先將所要實(shí)現(xiàn)的功能進(jìn)行羅列,基本明確所會(huì)用到的控件,并對(duì)各個(gè)空間的特點(diǎn)和使用方法進(jìn)行了解,最終能夠正確使用在程序設(shè)計(jì)中。對(duì)特定功能進(jìn)行相應(yīng)的程序圖設(shè)計(jì),然后整合程序圖,最終完成音樂(lè)播放器的運(yùn)行調(diào)試,并對(duì)前面板界面進(jìn)行美化設(shè)計(jì)。 在設(shè)計(jì)中如何實(shí)現(xiàn)音樂(lè)的隨機(jī)播放、如何實(shí)現(xiàn)音樂(lè)的循環(huán)播放以及歌詞的導(dǎo)入、歌曲的選擇都是本次音樂(lè)播放器基本功能能否實(shí)現(xiàn)的要點(diǎn)。 音樂(lè)的隨機(jī)播放功能中,設(shè)置創(chuàng)建了一個(gè)路徑數(shù)組,并且使用索引數(shù)組以及隨機(jī)選擇程序。其中隨機(jī)選擇程序中,如圖1所示,用到了隨機(jī)數(shù)控件、加減乘數(shù)值運(yùn)算控件和While循環(huán)控件,在設(shè)置最大最小值后進(jìn)行隨機(jī)數(shù)選擇,輸入到索引數(shù)組中隨機(jī)選擇播放路徑,實(shí)現(xiàn)隨機(jī)播放功能;音樂(lè)的循環(huán)播放功能,用到While循環(huán)結(jié)構(gòu),對(duì)調(diào)用節(jié)點(diǎn)進(jìn)行設(shè)置,實(shí)現(xiàn)音樂(lè)循環(huán)播放功能。 
圖1:隨機(jī)數(shù)生成程序 第2章 前后面板設(shè)計(jì)
2.1前面板設(shè)計(jì)在前面板設(shè)計(jì)時(shí),首先應(yīng)考慮到界面的簡(jiǎn)單明了以及界面的美化程度,因此在本音樂(lè)播放器中,將路徑選擇控件進(jìn)行隱藏,用按鍵進(jìn)行選擇;將不必要的控件進(jìn)行隱藏,實(shí)現(xiàn)前面板的相對(duì)簡(jiǎn)潔,并設(shè)置用戶使用提醒功能,對(duì)進(jìn)入播放器的用戶進(jìn)行操作說(shuō)明,最大程度上實(shí)現(xiàn)界面的友好;插入圖片作為背景,給原本單一的面板增添一抹亮色。 LabVIEW是一種程序開發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語(yǔ)言的顯著區(qū)別是:其他計(jì)算機(jī)語(yǔ)言都是采用基于文本的語(yǔ)言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語(yǔ)言G編寫程序,產(chǎn)生的程序是框圖的形式。 LabVIEW軟件是NI設(shè)計(jì)平臺(tái)的核心,也是開發(fā)測(cè)量或控制系統(tǒng)的理想選擇。 LabVIEW開發(fā)環(huán)境集成了工程師和科學(xué)家快速構(gòu)建各種應(yīng)用所需的所有工具,旨在幫助工程師和科學(xué)家解決問(wèn)題、提高生產(chǎn)力和不斷創(chuàng)新。 位于前面板控件選板上的輸入控件和顯示控件可用于創(chuàng)建前面板?丶姆N類有:數(shù)值控件(如滑動(dòng)桿和旋鈕)、圖形、圖表、布爾控件(如按鈕和開關(guān))、字符串、路徑、數(shù)組、簇、列表框、樹形控件、表格、下拉列表控件、枚舉控件和容器控件等等。 兩種最常用的前面板對(duì)象是數(shù)字控制和數(shù)字顯示。若想要在數(shù)字控制中輸入或修改數(shù)值,只需要用操作工具點(diǎn)擊控制部件和增減按鈕,或者用操作工具或標(biāo)簽工具雙擊數(shù)值欄進(jìn)行輸入數(shù)值修改。 
圖2:前面板設(shè)計(jì) 2.2后面板設(shè)計(jì)后面板的框圖程序中節(jié)點(diǎn)類似于文本語(yǔ)言程序的語(yǔ)句、函數(shù)或者子程序。LabVIEW有二種節(jié)點(diǎn)類型----函數(shù)節(jié)點(diǎn)和子VI節(jié)點(diǎn)。兩者的區(qū)別在于:函數(shù)節(jié)點(diǎn)是LabVIEW以編譯好了的機(jī)器代碼供用戶使用的,而子VI節(jié)點(diǎn)是以圖形語(yǔ)言形式提供給用戶的。用戶可以訪問(wèn)和修改任一子VI節(jié)點(diǎn)的代碼,但無(wú)法對(duì)函數(shù)節(jié)點(diǎn)進(jìn)行修改。 端點(diǎn)是只有一路輸入/輸出,且方向固定的節(jié)點(diǎn)。LabVIEW有三類端點(diǎn)----前面板對(duì)象端點(diǎn)、全局與局部變量端點(diǎn)和常量端點(diǎn)。對(duì)象端點(diǎn)是數(shù)據(jù)在框圖程序部分和前面板之間傳輸?shù)慕涌凇R话銇?lái)說(shuō),一個(gè)VI的前面板上的對(duì)象(控制或顯示)都在框圖中有一個(gè)對(duì)象端點(diǎn)與之一一對(duì)應(yīng)。當(dāng)在前面板創(chuàng)建或刪除面板對(duì)象時(shí),可以自動(dòng)創(chuàng)建或刪除相應(yīng)的對(duì)象端點(diǎn)?刂茖(duì)象對(duì)應(yīng)的端點(diǎn)在框圖中是用粗框框住的,如例子中的A和B端點(diǎn)。它們只能在VI程序框圖中作為數(shù)據(jù)流源點(diǎn)。顯示對(duì)象對(duì)應(yīng)的端點(diǎn)在框圖中是用細(xì)框框住的。如例子中的A+B和A-B端點(diǎn)。它們只能在VI程序框圖中作為數(shù)據(jù)流終點(diǎn)。常量端點(diǎn)永遠(yuǎn)只能在VI程序框圖中作為數(shù)據(jù)流源點(diǎn)。 圖框是LabVIEW實(shí)現(xiàn)程序結(jié)構(gòu)控制命令的圖形表示。如循環(huán)控制、條件分支控制和順序控制等,編程人員可以使用它們控制VI程序的執(zhí)行方式。代碼接口節(jié)點(diǎn)(CIN)是框圖程序與用戶提供的C語(yǔ)言文本程序的接口。 連線是端口間的數(shù)據(jù)通道。它們類似于普通程序中的變量。數(shù)據(jù)是單向流動(dòng)的,從源端口向一個(gè)或多個(gè)目的端口流動(dòng)。不同的線型代表不同的數(shù)據(jù)類型。在彩顯上,每種數(shù)據(jù)類型還以不同的顏色予以強(qiáng)調(diào)。 在后面板中,完成對(duì)程序的設(shè)計(jì),應(yīng)在實(shí)現(xiàn)基本要求的功能的基礎(chǔ)上盡可能簡(jiǎn)化程序圖,使得后面板程序圖功能明確,能夠使各個(gè)功能程序很好的結(jié)合在一起。 
圖3:后面板設(shè)計(jì) 第3章 界面優(yōu)化在播放器應(yīng)用之后,發(fā)現(xiàn)對(duì)歌單設(shè)置的路徑選擇控件可以隱藏起來(lái),實(shí)現(xiàn)音樂(lè)播放器根據(jù)用戶設(shè)置歌單隨機(jī)播放音樂(lè)的功能;其次使用說(shuō)明應(yīng)在程序運(yùn)行后立即彈出提示窗口,因此使用說(shuō)明按鈕可相對(duì)減小尺寸,并設(shè)置在界面四角的位置,以完成界面的優(yōu)化,如圖4和圖5所示。 
圖4:優(yōu)化后界面 
圖5:優(yōu)化前界面 第4章 設(shè)計(jì)思路LabVIEW可以通過(guò)dll,ActiveX,.Net等接口插件插件訪問(wèn)第三方軟件,但是對(duì)于部分不提供接口的軟件,我們只能通過(guò)微軟的API函數(shù)間接進(jìn)行訪問(wèn)。 播放: MediaPlayer.Play()
暫停: MediaPlayer.Pause() 停止: MediaPlayer.Stop()URL:String; 指定媒體位置,本機(jī)或網(wǎng)絡(luò)地址 uiMode:String; 播放器界面模式,可為Full, Mini, None, Invisible playState:integer; 播放狀態(tài),1=停止,2=暫停,3=播放,6=正在緩沖,9=正在連接,10=準(zhǔn)備就緒 enableContextMenu:Boolean; 啟用/禁用右鍵菜單 fullScreen:boolean; 是否全屏顯示 [controls] wmp.controls //播放器基本控制 controls.play; 播放 controls.pause; 暫停 controls.stop; 停止 controls.currentPosition:double; 當(dāng)前進(jìn)度 controls.currentPositionString:string; 當(dāng)前進(jìn)度,字符串格式。如“00:23” controls.fastForward; 快進(jìn) controls.fastReverse; 快退 controls.next; 下一曲 controls.previous; 上一曲 音樂(lè)播放器最主要的功能就是實(shí)現(xiàn)音樂(lè)的播放,為了能夠識(shí)別.mp3格式的音樂(lè)文件并正常播放,在設(shè)計(jì)中用到了WindowsMediaPlayer2控件,如圖6所示。 

圖6:WindowsMediaPlayer2控件
選擇好相應(yīng)控件后需設(shè)計(jì)播放程序,首先應(yīng)將路徑轉(zhuǎn)化為字符串,然后輸入到WindowsMediaPlayer2控件的屬性節(jié)點(diǎn)中,設(shè)置其他引用節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn),完成從路徑到音樂(lè)播放,以及循環(huán)播放功能,如圖7所示。圖7:音樂(lè)播放程序 音樂(lè)播放器還應(yīng)該有隨機(jī)播放功能,這建立在用戶先設(shè)置歌單,隨后根據(jù)設(shè)置歌單進(jìn)行音樂(lè)隨即播放,而歌單的設(shè)置在程序中用到了創(chuàng)建數(shù)組控件,用多個(gè)輸入路徑創(chuàng)建路徑數(shù)組(如圖8所示),用戶選擇相應(yīng)歌曲文件路徑,完成歌單的創(chuàng)建。創(chuàng)建好歌單后就要實(shí)現(xiàn)隨機(jī)播放,在程序中用到隨機(jī)數(shù)控件設(shè)計(jì)隨機(jī)選擇程序(如圖1所示),利用索引數(shù)組對(duì)歌單內(nèi)歌曲路徑進(jìn)行隨機(jī)選擇。 
圖8:路徑數(shù)組創(chuàng)建 在這個(gè)音樂(lè)播放器中,增添了歌詞手動(dòng)導(dǎo)入程序,能夠讓用戶手動(dòng)將歌詞文件導(dǎo)入到音樂(lè)播放器的歌詞顯示窗口中,如圖9所示。 
圖9:歌詞導(dǎo)入 4.1程序設(shè)計(jì)要點(diǎn)音樂(lè)播放器的隨機(jī)播放程序中,選擇顯示出來(lái)的路徑字符串格式與正確路徑格式有差別,為了使輸入到播放程序的路徑是正確格式,因此用到了搜索替換字符串,如圖10所示,對(duì)錯(cuò)誤的路徑字符串格式進(jìn)行正確的修改,能夠使后續(xù)播放音樂(lè)程序正常運(yùn)行。 替換子字符串 (函數(shù)):插入、刪除或替換子字符串,偏移量在字符串中指定。 字符串(接線端):是要替換字符的字符串。 子字符串(接線端)包含用于替換字符串中位于偏移量處的長(zhǎng)度個(gè)字符的子字符串。 偏移量(接線端):確定輸入字符串中開始替換子字符串的位置。 長(zhǎng)度(接線端):確定字符串中替換子字符串的字符數(shù)。 如子字符串為空,則刪除從偏移量開始的長(zhǎng)度個(gè)字符。 結(jié)果字符串(接線端):包含已經(jīng)進(jìn)行替換的字符串。 替換子字符串(接線端):包含字符串中替換的字符串。 
圖10:搜索替換字符串控件 在歌詞導(dǎo)入程序中,由于要將歌詞文件導(dǎo)入播放器歌詞顯示窗口中,需要使系統(tǒng)能夠讀取所導(dǎo)入的歌詞文件,用到讀取文本文件控件來(lái)解決這個(gè)問(wèn)題,如圖11所示,實(shí)現(xiàn)歌詞導(dǎo)入顯示功能。 讀取文本文件: 從字節(jié)流文件中讀取指定數(shù)目的字符或行。 提示(接線端):是在文件對(duì)話框的文件或目錄列表以及文件夾上方顯示的信息。 文件(接線端):可以是引用句柄或絕對(duì)文件路徑。 如果是路徑,函數(shù)將打開路徑指定的文件。默認(rèn)狀態(tài)將顯示文件對(duì)話框并提示用戶選擇文件。如指定空或相對(duì)路徑,或者文件不存在,函數(shù)將返回錯(cuò)誤。 計(jì)數(shù)(接線端):是函數(shù)讀取的字符數(shù)或行數(shù)的最大值。 如提前到達(dá)文件結(jié)尾,函數(shù)實(shí)際讀取的字符數(shù)和行數(shù)小于最大值。如計(jì)數(shù)<0,函數(shù)可讀取整個(gè)文件。如勾選快捷菜單上的讀取行,則只讀取一行;如取消勾選該菜單項(xiàng),則讀取整個(gè)文件。 注: 如連線至總數(shù)的文件大小的數(shù)據(jù)類型不是32位整型,LabVIEW將強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型為32位整型。VI不讀取指定數(shù)量的數(shù)據(jù)。如連線–1至總數(shù)且要讀取的文件太大,無(wú)法表示為32位整數(shù),LabVIEW可返回錯(cuò)誤。 錯(cuò)誤輸入(接線端):表明節(jié)點(diǎn)運(yùn)行前發(fā)生的錯(cuò)誤。該輸入將提供標(biāo)準(zhǔn)錯(cuò)誤輸入功能。 引用句柄輸出(接線端):是函數(shù)讀取的文件的引用句柄。根據(jù)對(duì)文件的不同操作,可將該輸入端連線至其它文件函數(shù)。如通過(guò)文件路徑引用或文件對(duì)話框選定文件,默認(rèn)狀態(tài)下可關(guān)閉文件。如文件是引用句柄或連線引用句柄輸出至其它函數(shù),則LabVIEW認(rèn)為文件仍在使用,直至它被關(guān)閉。 文本(接線端):是從文件讀取的文本。默認(rèn)狀態(tài)下,該字符串中包含從文件第一行讀取的字符。如連線計(jì)數(shù)接線端,則參數(shù)為字符串?dāng)?shù)組,包含從文件讀取的行。如右鍵單擊函數(shù)并取消勾選快捷菜單的讀取行,則參數(shù)為字符串,其中包含從文件讀取的字符。 取消(接線端):如取消文件對(duì)話框則值為TRUE。 否則,即使函數(shù)返回錯(cuò)誤,取消的值仍為FALSE。 錯(cuò)誤輸出(接線端):包含錯(cuò)誤信息。該輸出將提供標(biāo)準(zhǔn)錯(cuò)誤輸出功能。 
圖11:讀取文本文件控件如何將路徑轉(zhuǎn)換成控件可識(shí)別的字符串,是本次設(shè)計(jì)中最重要也最基本的問(wèn)題,用到路徑至字符串轉(zhuǎn)換控件,如圖12所示,完成轉(zhuǎn)換操作,為接下來(lái)音樂(lè)播放器的正常運(yùn)行打下基礎(chǔ)。 路徑至字符串?dāng)?shù)組轉(zhuǎn)換:使路徑轉(zhuǎn)換為字符串?dāng)?shù)組,并顯示是否為相對(duì)路徑。 路徑(接線端):是要轉(zhuǎn)換為字符串?dāng)?shù)組的路徑。 如路徑為<非法路徑>,字符串?dāng)?shù)組為空并且相對(duì)的值為FALSE。 相對(duì)(接線端):表明轉(zhuǎn)換的路徑為相對(duì)路徑或絕對(duì)路徑。 值為TRUE時(shí)表示相對(duì)路徑。值為FALSE時(shí)表示絕對(duì)路徑。 字符串?dāng)?shù)組(接線端):包含路徑元素。 第一個(gè)元素是路徑層次結(jié)構(gòu)的第一步。對(duì)于支持多個(gè)磁盤的文件系統(tǒng),第一個(gè)元素為磁盤名。如路徑為網(wǎng)絡(luò)路徑,字符串?dāng)?shù)組的第一個(gè)元素包含服務(wù)器名,以及路徑層次結(jié)構(gòu)的第一步。字符串?dāng)?shù)組的最后一個(gè)元素為路徑中指定的文件或目錄。 字符串?dāng)?shù)組至路徑轉(zhuǎn)換:使字符串?dāng)?shù)組轉(zhuǎn)換為相對(duì)或絕對(duì)路徑。如數(shù)組中有空字符串,在路徑輸出中可刪除空字符串前的目錄地址,該動(dòng)作與在目錄結(jié)構(gòu)中上移一層類似。 相對(duì)(接線端):表明創(chuàng)建相對(duì)路徑或絕對(duì)路徑。 如值為TRUE,函數(shù)可創(chuàng)建相對(duì)路徑。如值為FALSE(默認(rèn)),函數(shù)可創(chuàng)建絕對(duì)路徑。如值為FALSE并且指定路徑作為絕對(duì)路徑不可用(例如,表示上一級(jí)的路徑),函數(shù)可設(shè)置路徑為<非法路徑>。 字符串?dāng)?shù)組(接線端):包含要生成路徑的元素的名稱。 第一個(gè)元素是路徑層次結(jié)構(gòu)的最高級(jí)(對(duì)于支持多個(gè)磁盤的文件系統(tǒng)是磁盤名),最后一個(gè)元素是層次結(jié)構(gòu)的最后一個(gè)元素。包含空字符串的路徑可使LabVIEW進(jìn)入層次結(jié)構(gòu)的上一級(jí)。 路徑(接線端):是作為結(jié)果的路徑。 
圖12:路徑至字符串轉(zhuǎn)換控件為了使該音樂(lè)播放器更友好,且未用戶提供更好的使用體驗(yàn),及時(shí)提醒用戶操作規(guī)范以及防止用戶誤退出程序,進(jìn)行了相關(guān)的程序設(shè)計(jì),如圖13、圖14、圖15、圖16所示。 顯示對(duì)話框信息:創(chuàng)建含有警告或用戶消息的標(biāo)準(zhǔn)對(duì)話框。 消息(接線端):包含顯示在對(duì)話框中的文本。 啟用(接線端):?jiǎn)⒂没蚪肊xpress VI。默認(rèn)為開啟或TRUE。 錯(cuò)誤輸入(接線端):描述該節(jié)點(diǎn)運(yùn)行前發(fā)生的錯(cuò)誤。 確定(接線端):?jiǎn)螕魧?duì)話框中的按鈕1,則返回TRUE;單擊按鈕2,則返回FALSE。 錯(cuò)誤輸出(接線端):包含錯(cuò)誤信息。該輸出提供標(biāo)準(zhǔn)錯(cuò)誤輸出。 雙擊打開顯示對(duì)話框信息: 顯示的信息包含顯示在對(duì)話框中的文本。 顯示的按鈕包含下列選項(xiàng): 按鈕1名稱—指定按鈕1上顯示的文本。默認(rèn)狀態(tài)下,按鈕1上顯示的文本為確定。 按鈕2名稱—指定按鈕2上顯示的文本。默認(rèn)狀態(tài)下,按鈕2上顯示的文本為取消。只有勾選顯示按鈕2復(fù)選框時(shí),才可改動(dòng)該選項(xiàng)。 顯示按鈕2—指定是否在對(duì)話框中顯示按鈕2。 
圖13:顯示對(duì)話框信息控件
圖14:顯示對(duì)話框信息控件對(duì)應(yīng)的前面板顯示效果
圖15:退出LabVIEW前面板顯示
圖16:退出LabVIEW程序設(shè)計(jì) 4.2最終調(diào)試完成所有程序設(shè)計(jì)以及前后面板設(shè)計(jì)之后,需要對(duì)音樂(lè)播放器的功能進(jìn)行調(diào)試檢查,檢查其是否能夠完成預(yù)期目標(biāo)和功能,如圖17所示。是否還存在優(yōu)化方案以及能否增添新功能。 系統(tǒng)調(diào)試其重要性體現(xiàn)在它是保證系統(tǒng)質(zhì)量和可靠性的最后關(guān)口,是對(duì)整個(gè)系統(tǒng)開發(fā)過(guò)程的最終審查。盡管在系統(tǒng)開發(fā)的各個(gè)階段均采取了嚴(yán)格的技術(shù)審查,希望盡早發(fā)現(xiàn)問(wèn)題并予以修正,但依然難免遺留下差錯(cuò),如果在系統(tǒng)正式運(yùn)行前沒(méi)有發(fā)現(xiàn)并糾正這些差錯(cuò),將對(duì)整個(gè)系統(tǒng)造成非常嚴(yán)重的影響。 
圖17:最終調(diào)試界面 第5章 總結(jié)本次課程設(shè)計(jì)主要是完成了基于labview的音樂(lè)播放器。系統(tǒng)主要功能是上位機(jī)實(shí)現(xiàn)音樂(lè)的播放,可選擇音樂(lè)路徑進(jìn)行特定音樂(lè)的播放,也可隨機(jī)播放歌單內(nèi)歌曲,并且能夠完成調(diào)節(jié)音量,循環(huán)播放、關(guān)閉單曲循環(huán)以及手動(dòng)導(dǎo)入歌詞等功能。系統(tǒng)設(shè)計(jì)雖然已經(jīng)完成,但在設(shè)計(jì)過(guò)程中所使用的各種方法手段還需經(jīng)過(guò)進(jìn)一步的整理總結(jié),從而成為我們受用一生的寶貴經(jīng)驗(yàn)。 在本次音樂(lè)播放器的設(shè)計(jì)中,能夠?qū)崿F(xiàn)其基本功能,但還存在一些問(wèn)題,如在歌詞顯示方面無(wú)法自動(dòng)匹配歌詞,只能讓用戶手動(dòng)導(dǎo)入;其次歌單的前面板設(shè)置太過(guò)繁瑣,應(yīng)使其成為一個(gè)更加獨(dú)立的功能;播放器操作需根據(jù)使用說(shuō)明進(jìn)行操作,操作上略顯繁瑣和死板這些問(wèn)題。 個(gè)人心得虛擬儀器課程設(shè)計(jì)中,我的題目是基于虛擬儀器的音樂(lè)播放器設(shè)計(jì),在該設(shè)計(jì)中應(yīng)該實(shí)現(xiàn)音樂(lè)播放器的基本功能,比如選擇歌曲播放,調(diào)節(jié)音量大小等基本功能,在實(shí)現(xiàn)基本功能的前提下盡可能簡(jiǎn)化程序圖,使得后面板的設(shè)計(jì)更加清晰明了。 在設(shè)計(jì)中,遇到了很多問(wèn)題,一開始不知道選擇哪個(gè)控件進(jìn)行音樂(lè)的播放,再者就是一首歌放完之后就停止了,無(wú)法實(shí)現(xiàn)循環(huán)播放,對(duì)WindowsMediaPlayer2控件的了解并不深入,在它的屬性節(jié)點(diǎn)和引用節(jié)點(diǎn)的設(shè)置上很迷茫。 其次音樂(lè)播放器應(yīng)該實(shí)現(xiàn)隨機(jī)播放功能,但如何實(shí)現(xiàn)該功能卻是一個(gè)問(wèn)題,最后我應(yīng)用數(shù)組控件,創(chuàng)建了一個(gè)路徑數(shù)組,完成了這個(gè)目標(biāo),并順帶解決了歌單設(shè)置這個(gè)功能。但由于考慮不全面,沒(méi)有將歌單設(shè)置與播放界面獨(dú)立開,顯得前面板略顯混亂。 在解決隨機(jī)播放的問(wèn)題中,還遇到路徑字符串無(wú)法按照正確格式輸出,導(dǎo)致播放器無(wú)法正常工作。最后在一次次嘗試之后找到了解決方法,讓我感覺(jué)到在遇到困難的時(shí)候就要更加的集中精力全身的投入。盡量自己找辦法解決問(wèn)題,在問(wèn)題中學(xué)習(xí),在問(wèn)題中前進(jìn)。 為期一周的課程設(shè)計(jì)結(jié)束了,在這周的控制虛擬儀器課設(shè)中,我有了不少的收獲,掌握LabVIEW軟件的使用方法,將理論知識(shí)理解聯(lián)系到設(shè)計(jì)中,雖然設(shè)計(jì)中遇到的困難接二連三,但在努力下還是讓問(wèn)題得到了解決,讓我對(duì)虛擬儀器的理解不再停留在書本上,而是自己動(dòng)手進(jìn)行設(shè)計(jì),更加熟悉了LabVIEW這個(gè)軟件。經(jīng)過(guò)一周的課程設(shè)計(jì),讓我對(duì)虛擬儀器設(shè)計(jì)有了更直觀的認(rèn)識(shí),之前學(xué)習(xí)的理論知識(shí),通過(guò)一周的虛擬儀器課程設(shè)計(jì),讓我更清楚地了解了相關(guān)軟件的基本應(yīng)用方法。 虛擬儀器的課程設(shè)計(jì)除了讓我對(duì)各種控件有了更進(jìn)一步的認(rèn)識(shí)之外,也讓我感覺(jué)到了LabVIEW軟件功能的強(qiáng)大,同時(shí)在解決設(shè)計(jì)中所遇到的各種問(wèn)題的過(guò)程中,也讓我體會(huì)到了自身對(duì)于理論知識(shí)掌握不足。體會(huì)到了解決問(wèn)題的成就感和滿足感,看到程序成功運(yùn)行時(shí)的開心,同時(shí)讓我明白理論知識(shí)和實(shí)際設(shè)計(jì)之間的聯(lián)系和區(qū)別。
完整的Word格式文檔51黑下載地址:
LABVIEW音樂(lè)播放器.zip
(8.05 MB, 下載次數(shù): 211)
2019-4-10 19:06 上傳
點(diǎn)擊文件名下載附件
個(gè)性化設(shè)計(jì) 下載積分: 黑幣 -5
|