




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1.課程實(shí)習(xí)目的11.1了解QT和QT creator11.2了解Qt phonon的多媒體框架12.課程實(shí)習(xí)題目描述和要求12.1 QT制作音樂播放器12.2音樂播放器能實(shí)現(xiàn)簡單的功能13.課程實(shí)習(xí)報告內(nèi)容13.1實(shí)驗(yàn)步驟13.2程序代碼23.3實(shí)現(xiàn)截圖44.總結(jié)55任務(wù)分配61.課程實(shí)習(xí)目的1.1了解QT和QT creatorQt Creator是跨平臺的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收購后推出的一款新的輕量級集成開發(fā)環(huán)境(IDE)。此 IDE 能夠跨平臺運(yùn)行,支持的系統(tǒng)包括 Linux(32 位及 64 位)、Mac OS X 以及 Window
2、s。根據(jù)官方描述,Qt Creator 的設(shè)計目標(biāo)是使開發(fā)人員能夠利用 Qt 這個應(yīng)用程序框架更加快速及輕易的完成任務(wù)。1.2了解Qt phonon的多媒體框架 Phonon是什么?Qt從4.4版本開始提供的一套多媒體框架,提供多媒體回放的功能。目前在Qt 4.6中實(shí)現(xiàn)多媒體播放圖形界面主要依賴于phonon框架,其實(shí)qt中還有一個Multimedia模塊,幫助文檔中對它的描述是:實(shí)現(xiàn)底層的多媒體播放功能,在一般情況下上層的接口phonon模塊更適合實(shí)現(xiàn)這些功能。phonon最初是 一個 源于KDE的項(xiàng)目,為使用音頻和視頻的應(yīng)用程序開發(fā)提供的一個框架。應(yīng)用程序不用去管多媒體播放是通過什么實(shí)現(xiàn)的
3、(如gstreamer、xine),只需調(diào)用相應(yīng)的接口就行,但這中間需要一個中轉(zhuǎn),被稱為backend。Qt也是通過phonon來實(shí)現(xiàn)跨平臺的多媒體播放。2.課程實(shí)習(xí)題目描述和要求2.1 QT制作音樂播放器通過創(chuàng)建帶有Phonon模塊的工程,對音樂播放器進(jìn)行設(shè)計,主要用到模塊中的MediaObject (管理媒體源) AudioOutput (連接物理設(shè)備)SeekSlider( 實(shí)現(xiàn)進(jìn)度條)QList (實(shí)現(xiàn)播放列表 )2.2音樂播放器能實(shí)現(xiàn)簡單的功能這個軟件設(shè)計的目的就是制作一個能夠播放音頻的播放器。在播放的文件方面,可播放本地的音頻文件在功能方面,它具備一些基本的音樂操作處理功能(暫停、
4、播放、音量調(diào)節(jié)、拖動、停止等)此播放器是在Windows操作系統(tǒng)下的QT4集成環(huán)境下完成的,QT是跨平臺的開發(fā)軟件,只要將此播放器的代碼在其他QT能夠運(yùn)行的平臺上重新編譯就可以在當(dāng)前平臺上運(yùn)行。3.課程實(shí)習(xí)報告內(nèi)容3.1實(shí)驗(yàn)步驟【步驟一】 新建一個 Qt Gui 工程,在建立過程中需要包含 Phonon 模塊,之后生成文件如下圖: Qt Gui 工程會生成一個 ui 文件,在這里是 mainwindow.ui 。雙擊 mainwindow.ui 進(jìn)行一番簡單的布局, 大概地說, Phonon 的工作機(jī)制是使用 MediaObject 來管理 MediaSource 即源文件,通過 Path 連
5、接到 AudioOutput ,最后是由 AudioOutput 將數(shù)據(jù)發(fā)送到相關(guān)物理設(shè)備。 于是有了步驟二?!静襟E二】 步驟一是用來實(shí)現(xiàn)基本的界面,而步驟二是用代碼實(shí)現(xiàn)具體的功能。 基于對 Phonon 的認(rèn)識,有了以下四點(diǎn): 使用 MediaObject 管理媒體源 使用 AudioOutput 連接物理設(shè)備 使用 SeekSlider 實(shí)現(xiàn)進(jìn)度條 使用 QList 實(shí)現(xiàn)播放列表 3.2程序代碼1.頭文件:yinyue.h#ifndef YINYUE_H#define YINYUE_H#include #include #include #include namespace Ui clas
6、s yinyue;class yinyue : public QDialog Q_OBJECTpublic: explicit yinyue(QWidget *parent = 0); yinyue();private: Ui:yinyue *ui; Phonon:MediaObject *mediaObject; Phonon:AudioOutput *audioOutput; QList sourceList;/播放列表 QMenu mau;private slots: void on_addFiles_clicked(); void on_playFile_clicked(); void
7、 on_pauseFile_clicked(); void on_stopFile_clicked(); void on_listWidget_customContextMenuRequested(QPoint pos);#endif / YINYUE_H2.源文件:yinyue.cpp#include yinyue.h#include ui_yinyue.h#include#include yinyue:yinyue(QWidget *parent) : QDialog(parent), ui(new Ui:yinyue) ui-setupUi(this); mediaObject = ne
8、w Phonon:MediaObject(this);/媒體對象 audioOutput = new Phonon:AudioOutput(this);/音頻輸出 Phonon:createPath(mediaObject, audioOutput);/連接媒體對象與音頻輸出 ui-seekSlider-setMediaObject(mediaObject);/進(jìn)度滑動條 ui-volumeSlider-setAudioOutput(audioOutput);/音量調(diào)節(jié)yinyue:yinyue() delete ui;void yinyue:on_addFiles_clicked() QSt
9、ringList files = QFileDialog:getOpenFileNames(this, tr(Selec Files to play); / 使用 QFileDialog 的 getOpenFileNames 方法獲取若干個音樂文件, QString file; foreach(file, files)/ 使用 Qt 中的 foreach 遍歷每個選中的文件,將其添加到播放列表中。 ui-listWidget-addItem(file); sourceList.append(file); void yinyue:on_playFile_clicked()/首先判斷列表是否為空,
10、接著設(shè)置播放隊(duì)列,然后播放當(dāng)前文件,/最后使得播放按鈕不可用,而激活暫停按鈕。 if(sourceList.isEmpty() QMessageBox:information(this, tr(no music files), tr(no files to play); return ; mediaObject-setQueue(sourceList);/列表循環(huán) mediaObject-play(); ui-playFile-setEnabled(false);/setEnabled是可用的意思,當(dāng)為1(true)時可用,當(dāng)為0(false)時按鈕為灰白不可用 ui-pauseFile-se
11、tEnabled(true);void yinyue:on_pauseFile_clicked() mediaObject-pause();/暫停當(dāng)前播放 ui-pauseFile-setEnabled(false);/當(dāng)暫停按鈕不可用的時候 ui-playFile-setEnabled(true);/播放按鈕開啟void yinyue:on_stopFile_clicked() mediaObject-stop();/停止播放 ui-pauseFile-setEnabled(true);/暫停按鈕恢復(fù)可用 ui-playFile-setEnabled(true);/播放按鈕可用void yi
12、nyue:on_listWidget_customContextMenuRequested(QPoint pos) mau.clear(); QMenu *child; child=mau.addMenu(QIcon(:/tupian/_2afc7d1fb5e8980f60d1da316a9f09af.gif),菜單); child-addAction(ui-playFiles); child-addAction(ui-action); mau.move(ui-listWidget-viewport()-mapToGlobal(pos); mau.show();3.3實(shí)現(xiàn)截圖4.總結(jié)通過這次實(shí)
13、驗(yàn)使我們對這幾個領(lǐng)域有了一定的了解和經(jīng)驗(yàn),這對于我們意義重大。程序是完成了,但是該播放器還是有很多需要改進(jìn)的地方,我們今后會在此程序的基礎(chǔ)上進(jìn)行改進(jìn)、擴(kuò)充,爭取做的更好。在實(shí)現(xiàn)程序過程中,我們組的成員一起探討、交流想法、找資料、搜歌曲等,讓我體會到了團(tuán)隊(duì)的力量,這也是我們今后成為一名合格的IT人員應(yīng)該具有的素質(zhì),這個實(shí)習(xí)給了我們這個機(jī)會,我們很慶幸我們抓住個這個機(jī)會來鍛煉自己。同時,在這個過程中,我們的學(xué)習(xí)、分析問題、解決問題等方面的能力都有了很大的提高,也對我們的耐心、細(xì)心、堅持等素質(zhì)進(jìn)行了磨練,我們相信我們能在今后的路上走的更好、更遠(yuǎn)。5任務(wù)分配排序姓名任務(wù)量承擔(dān)任務(wù)1234要求:排序按同學(xué)所做的工作量從高到低排序,任務(wù)量用百分制表示,4人之和為100%參考文獻(xiàn):124小時學(xué)通QT編程 著:Daiel Solin 譯:袁鵬飛 人民郵電出版社2 KDE2/QT 編程寶典 電子工業(yè)出版社3 ARM嵌入式linux系統(tǒng)開發(fā) 電子工業(yè)出版社本頁每位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)集資合同范本
- 合同范本甲方名字過長
- 農(nóng)村澆地用電合同范本
- 合伙辦鞋廠合同范本
- 合同范本橫豎
- 中介臨時勞動合同范例
- 協(xié)議購車合同范本
- 專業(yè)監(jiān)理安裝合同范本
- 吉利采購合同范本
- 廠房賃合同范本
- 港股基礎(chǔ)知識
- 2025年遼寧醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年溫州市甌海旅游投資集團(tuán)有限公司下屬子公司招聘筆試參考題庫附帶答案詳解
- 2025年天津三源電力集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年上半年浙江嘉興桐鄉(xiāng)市水務(wù)集團(tuán)限公司招聘10人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年腹腔穿刺術(shù)課件 (1)2
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 物理試卷合集(含答案逐題解析)
- 2024年干式電力電容器項(xiàng)目可行性研究報告
- 河南12系列建筑設(shè)計圖集一(12YJ1)
- 2025年度智能倉儲管理系統(tǒng)軟件開發(fā)合同6篇
- 2024版數(shù)據(jù)中心建設(shè)與運(yùn)維服務(wù)合同協(xié)議書3篇
評論
0/150
提交評論