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

正文內(nèi)容

基于java的音樂(lè)播放器課程設(shè)計(jì)報(bào)告(編輯修改稿)

2024-11-15 13:03 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 活,并慢慢地成為人們生活重要組成部分。目前,互聯(lián)網(wǎng)上已經(jīng)擁有大量的音樂(lè)播放軟件,這些軟件是各個(gè)軟件供應(yīng)商的商品關(guān)鍵組成部分,當(dāng)前其實(shí)現(xiàn)技術(shù)較復(fù)雜,在功能方面相當(dāng)完備且強(qiáng)大,如何簡(jiǎn)單、高效、方便地設(shè)計(jì)實(shí)現(xiàn)一款小巧美觀的音樂(lè)播放器軟件成為人們關(guān)注的熱點(diǎn)。基于該問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了基于Qt的音樂(lè)播放軟件,該軟件能夠便捷、高效地為用戶(hù)展示音樂(lè)播放界面,方便的進(jìn)行歌曲播放和控制功能。本文的工作分為軟件界面設(shè)計(jì)和軟件功能實(shí)現(xiàn)兩部分,其中,軟件界面設(shè)計(jì)工作主要包括用戶(hù)界面設(shè)計(jì)實(shí)現(xiàn);各個(gè)功能模塊實(shí)現(xiàn)工作主要包括后臺(tái)程序編碼設(shè)計(jì)模塊化完成設(shè)計(jì)等內(nèi)容。該音樂(lè)播放軟件以Qt開(kāi)發(fā)平臺(tái)中實(shí)現(xiàn)歌曲播放的相應(yīng)功能為基本框架設(shè)計(jì),通過(guò)C++語(yǔ)言編程實(shí)現(xiàn)各個(gè)功能函數(shù),軟件設(shè)計(jì)方面采用模塊化的軟件設(shè)計(jì)思想實(shí)現(xiàn),具有友好的用戶(hù)交互界面和高承載能力的運(yùn)行穩(wěn)定性。第二章 軟件分析與設(shè)計(jì) 軟件需求分析在設(shè)計(jì)實(shí)現(xiàn)音樂(lè)播放器軟件的同時(shí),可以對(duì)目前存在的不同類(lèi)型的音樂(lè)播放器進(jìn)行廣泛深入的研究,查看軟件可能需要的需求內(nèi)容。因此,需要對(duì)具體問(wèn)題進(jìn)行具體分析,深入挖掘其需要實(shí)現(xiàn)的系統(tǒng)功能,以方便后面對(duì)軟件構(gòu)架的設(shè)計(jì)工作。需求分析的過(guò)程,是開(kāi)發(fā)人員對(duì)音樂(lè)播放器工作過(guò)程的認(rèn)識(shí)與熟悉的過(guò)程,也是對(duì)軟件內(nèi)部工作流程進(jìn)行計(jì)算機(jī)建模的過(guò)程,最終目的是通過(guò)需求分析了解用戶(hù)需求實(shí)現(xiàn)的功能,根據(jù)用戶(hù)提出的需求設(shè)計(jì)好系統(tǒng)的概念模型,對(duì)用戶(hù)提出的需求進(jìn)行計(jì)算機(jī)方法的描述,并建立相應(yīng)配套的需求分析文檔,設(shè)計(jì)好系統(tǒng)的具體實(shí)現(xiàn)方案。在設(shè)計(jì)實(shí)現(xiàn)基于Qt的音樂(lè)播放器的同時(shí),考慮到音樂(lè)播放器的實(shí)際工作環(huán)境,可以確定的是該軟件應(yīng)當(dāng)擁有以下幾個(gè)方面的特性:(1)基本功能隨著電腦終端的擴(kuò)大化,PC機(jī)上各種軟件也不計(jì)其數(shù)。為了使用戶(hù)體驗(yàn)及軟件質(zhì)量都達(dá)到一定的完備性,我們需要保證一定的基礎(chǔ)功能。基于人性化角度,開(kāi)發(fā)設(shè)計(jì)基礎(chǔ)功能,使用戶(hù)可以流暢使用軟件。在進(jìn)行功能劃分的過(guò)程當(dāng)中,可以采用模塊化的功能設(shè)計(jì)思想,對(duì)功能的劃分盡可能的細(xì)致,做到不遺漏。例如,應(yīng)當(dāng)有播放模式的選擇,音樂(lè)列表的選擇,音量高低的調(diào)試等。(2)穩(wěn)定性基于QT的音樂(lè)播放器是一款?yuàn)蕵?lè)軟件,更需要保證軟件的穩(wěn)定性,以使用戶(hù)體驗(yàn)達(dá)到最高。若播放器不穩(wěn)定,則用戶(hù)體驗(yàn)這一指標(biāo)則會(huì)大幅下降。(3)聯(lián)通性移動(dòng)設(shè)備日益增長(zhǎng),微博、微信等交流平臺(tái)在市場(chǎng)中也占據(jù)重要地位。為迎合這一現(xiàn)象,QT音樂(lè)播放器必須進(jìn)行一定的互聯(lián)網(wǎng)聯(lián)通性。可以進(jìn)行音樂(lè)分享、轉(zhuǎn)發(fā)評(píng)論等。這樣可以實(shí)現(xiàn)軟件之間的交流結(jié)合,有利于軟件的推廣。同時(shí)也有利于通過(guò)大數(shù)據(jù)分析,得到聽(tīng)眾最喜愛(ài)聽(tīng)的歌曲,符合大眾口味。 開(kāi)發(fā)環(huán)境操作系統(tǒng):Windows 10 開(kāi)發(fā)平臺(tái):Qt 使用語(yǔ)言:C++ 軟件概要設(shè)計(jì)在軟件概要設(shè)計(jì)階段,是基于整個(gè)系統(tǒng)需要實(shí)現(xiàn)的功能,對(duì)物業(yè)管理信息系統(tǒng)的整體架構(gòu)進(jìn)行科學(xué)合理的設(shè)計(jì),使之有一定的規(guī)律可以遵循,不進(jìn)行盲目的設(shè)計(jì)工作,這對(duì)于后期的程序編碼和系統(tǒng)的來(lái)說(shuō)意義重大。在對(duì)音樂(lè)播放器軟件進(jìn)行軟件需求分析之后,針對(duì)需求 分析的結(jié)果,對(duì)系統(tǒng)進(jìn)行了整體的架構(gòu)設(shè)計(jì)。設(shè)計(jì)實(shí)現(xiàn)的音樂(lè)播放器軟件,從軟件的架構(gòu)來(lái)看,主要包括兩個(gè)功能部分:軟件的歌曲播放部分和圖標(biāo)最小化功能實(shí)現(xiàn)部分。其中,歌曲播放部分主要實(shí)現(xiàn)該軟件的主要功能,即選擇歌曲和播放歌曲;另一部分則是最小化后軟件的實(shí)現(xiàn),主要包括顯示、登錄、設(shè)置、檢查更新、退出。以上是對(duì)該音樂(lè)播放器軟件的整體工作架構(gòu)進(jìn)行的設(shè)計(jì),該步驟是后續(xù)進(jìn)一步進(jìn)行系統(tǒng)功能實(shí)現(xiàn)的基礎(chǔ)。第三章 軟件功能實(shí)現(xiàn)在設(shè)計(jì)實(shí)現(xiàn)基于Qt的音樂(lè)播放器軟件的同時(shí),充分考慮了Qt的語(yǔ)言特性和開(kāi)發(fā)環(huán)境,發(fā)揮了其在用戶(hù)界面應(yīng)用程序開(kāi)發(fā)當(dāng)中的優(yōu)勢(shì),對(duì)音樂(lè)播放器軟件進(jìn)行了開(kāi)發(fā)。根據(jù)前文對(duì)該音樂(lè)播放器軟件的 需求分析,以及對(duì)軟件的設(shè)計(jì)分析結(jié)果,結(jié)合實(shí)際使用當(dāng)中可能使用到的軟件功能,并采用了軟件工程中模塊化的開(kāi)發(fā)思想,完成了該音樂(lè)播放器軟件的開(kāi)發(fā),下面分別對(duì)軟件中重要的功能模塊的實(shí)現(xiàn)方法及實(shí)現(xiàn)效果進(jìn)行詳細(xì)的介紹和分析。 總體架構(gòu)通過(guò)在需求階段對(duì)系統(tǒng)的總體功能的分析,我們得到了這個(gè)音樂(lè)播放器軟件的總體功能結(jié)構(gòu),它應(yīng)包括四大基本功能模塊。(1)選擇歌曲文件模塊:用戶(hù)可以方便的查詢(xún)環(huán)境當(dāng)中存在的歌曲列表信息,并找到滿(mǎn)意歌曲的位置和具體的歌曲內(nèi)容。(2)歌曲播放模塊:用戶(hù)根據(jù)所選擇的具體歌曲讓該軟件對(duì)歌曲進(jìn)行播放,并且可以實(shí)時(shí)查看歌曲的播放狀態(tài)。(3)播放狀態(tài)控制模塊:用戶(hù)可以查看成自己在歌曲播放過(guò)程中進(jìn)度情況,并可以隨時(shí)更改歌曲的播放進(jìn)度信息。(4)第二界面模塊:用戶(hù)可以進(jìn)入第二個(gè)更為簡(jiǎn)潔的界面進(jìn)行播放、暫停、切換等操作。 軟件功能流程整個(gè)軟件所設(shè)計(jì)的工作流程如下:(1)開(kāi)始。進(jìn)入Qt界面開(kāi)始運(yùn)行軟件。(2)播放歌曲。該部分是音樂(lè)播放器軟件最主要的功能部分,播放歌曲的功能實(shí)現(xiàn)需要相對(duì)復(fù)雜的函數(shù)調(diào)用來(lái)實(shí)現(xiàn),在軟件開(kāi)發(fā)的過(guò)程 當(dāng)中有具體的實(shí)現(xiàn)代碼。(3)播放設(shè)置。該部分的實(shí)現(xiàn)是進(jìn)一步提高用戶(hù)的使用體驗(yàn),方便用戶(hù)根據(jù)其自身的需求對(duì)所播放的歌曲進(jìn)行進(jìn)度控制,可以暫停歌曲的播放,也可以繼續(xù)歌曲的播放功能,同時(shí)也可以進(jìn)行音量的調(diào)控,以及對(duì)歌曲播放的順序進(jìn)行調(diào)整,比如順序播放、單曲循環(huán)等。(4)第二界面。點(diǎn)擊shrink按鈕可跳轉(zhuǎn)至第二界面,進(jìn)行播放切換歌曲等操作,也可以進(jìn)行最小化。(5)結(jié)束。點(diǎn)擊關(guān)閉軟件,結(jié)束軟件運(yùn)行。 具體功能實(shí)現(xiàn)本人完成了本次音樂(lè)播放器中的歌曲導(dǎo)入模塊以及播放歌曲的初步工作,具體的實(shí)現(xiàn)過(guò)程如下。(1).h文件,先對(duì)命名空間進(jìn)行前向聲明,對(duì)類(lèi)內(nèi)的對(duì)象和方法進(jìn)行聲明,具體代碼如下:ifndef SETTINGWIGET_H define SETTINGWIGET_Hinclude namespace Ui { class settingwiget。}class settingwiget : public QWidget { Q_OBJECTpublic: explicit settingwiget(QWidget *parent = 0)。~settingwiget()。void initSystemSetting(void)。bool writeInit(QString path, QString user_key, QString user_value)。bool readInit(QString path, QString user_key, QString amp。user_value)。private slots: void on_pb_save_clicked()。void on_pb_cancle_clicked()。void on_tb_lyricsPath_clicked()。void on_tb_songsPath_clicked()。void on_pb_save_destroyed()。private: Ui::settingwiget *ui。}。endif // SETTINGWIGET_H(2).cpp文件,代碼如下:settingwiget::settingwiget(QWidget *parent): QWidget(parent), ui(new Ui::settingwiget){ uisetupUi(this)。SongsFile::()。LyricsFile::()。}settingwiget::~settingwiget(){ delete ui。}bool settingwiget::writeInit(QString path, QString user_key, QString user_value){ if(()|| ()){ return false。} else { //創(chuàng)建配置文件操作對(duì)象QSettings *config = new QSettings(path, QSettings::IniFormat)。//將信息寫(xiě)入配置文件configbeginGroup(“config”)。configsetValue(user_key, user_value)。configendGroup()。return true。} }bool settingwiget::readInit(QString path, QString user_key, QString amp。user_value){ user_value = QString(“)。if(()|| ()){ return false。} else { //創(chuàng)建配置文件操作對(duì)象QSettings *config = new QSettings(path, QSettings::IniFormat)。//讀取用戶(hù)配置信息user_value = configvalue(QString(”config/“)+ user_key).toString()。return true。} },代碼如下:void settingwiget::on_tb_songsPath_clicked(){ SongsFile::m_songPath = QFileDialog::getExistingDirectory()。uile_songsPathsetText(SongsFile::m_songPath)。}void settingwiget::on_tb_lyricsPath_clicked(){ LyricsFile::m_lyricPath = QFileDialog::getExistingDirectory()。uile_lyricsPathsetText(LyricsFile::m_lyricPath)。}void settingwiget::on_pb_save_clicked(){ writeInit(QString(”../“), ”SONGPATH“, SongsFile::m_songPath)。writeInit(QString(”../“), ”LYRICPATH“, LyricsFile::m_lyricPath)。initSystemSetting()。thishide()。}void settingwiget::on_pb_cancle_clicked(){ thishide()。}void settingwiget::initSystemSetting(void){ readInit(QString(”../“), ”SONGPATH“, SongsFile::m_songPath)。readInit(QString(”../“), ”LYRICPATH“, LyricsFile::m_lyricPath)。uile_songsPathsetText(SongsFile::m_songPath)。uile_lyricsPathsetText(LyricsFile::m_lyricPath)。}void settingwiget::on_pb_save_destroyed(){}其中,cpp文件內(nèi)的頭文件為:include ”“ include ”“include include include include ”“ include ”“ include ”“ include ”“ ,如下圖所示: 具體的對(duì)象為:(1).h文件,采用枚舉類(lèi)型對(duì)播放模式進(jìn)行聲明,寫(xiě)入信號(hào)和槽方便傳值,對(duì)歌曲播放邏輯、歌曲列表獲取邏輯、歌曲歌詞獲取邏輯的對(duì)象、方法進(jìn)行聲明,具體代碼如下:ifndef MUSICPLAYER_H define MUSICPLAYER_Hinclude include include include include ”“ include ”“define TIME_MS_DURATION 1000 define INIT_SYSTEM_VOLUME 50enum PlaybackMode //播放模式 { CURRENT_ITEM_ONCE = 0, //單曲播放 CURRENT_ITEM_IN_LOOP = 1, //單曲循環(huán) SEQUENTIAL = 2, //順序播放 LOOP = 3, //列表循環(huán) RANDOM = 4 //隨機(jī)播放}。class MusicPlayer : public QObject { Q_OBJECTsignals: void signalPositionChanged(QString updateTime)。void signalDurationChanged(qint64 duration)。public slots: void slotPositionChanged(qint64 position)。void slotDurationChanged(qint
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1