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

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