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

正文內(nèi)容

基于phonon庫的音樂播放器設(shè)計(jì)(參考版)

2025-06-10 01:02本頁面
  

【正文】 connect(stop_ac。 stop_actionsetText(tr(停止(F6)))。 //設(shè)置停止動(dòng)作 stop_action = new QAction(this)。 play_actionsetShortcut(QKeySequence(F5))。 play_actionsetIcon(QIcon(:/image/))。//該構(gòu)造函數(shù)沒有寫入文字 tool_barsetFloatable(true)。 widget_baraddSeparator()。 widget_baraddSeparator()。 widget_baraddSeparator()。 connect(LRCAction, SIGNAL(triggered()), this, SLOT(SetLrcShown()))。 LRCActionsetShortcut(QKeySequence(F2))。 connect(PLAction, SIGNAL(triggered()), this, SLOT(SetPlayListShown()))。 PLActionsetShortcut(QKeySequence(F4))。 //QSizePolicy類是描述水平和垂直修改大小策略的一種屬性 time_labelsetSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)。 time_labelsetToolTip(tr(當(dāng)前時(shí)間/總時(shí)間))。 //設(shè)置顯示時(shí)間的標(biāo)簽 QToolBar *widget_bar = new QToolBar(this)。//運(yùn)行點(diǎn)擊進(jìn)入外部鏈接 top_labelsetAlignment(Qt::AlignCenter)。 top_labelsetTextFormat(Qt::RichText)。//綁定源和接收器 //關(guān)聯(lián)媒體對象的tick信號來更新播放時(shí)間的顯示 connect(media_object, SIGNAL(tick(qint64)), this, SLOT(UpdateTime(qint64)))。 Phonon::AudioOutput *audio_output = new Phonon::AudioOutput(Phonon::MusicCategory, this)。 setMaximumSize(400, 200)。 setWindowIcon(QIcon(:/image/))。 (0,0,thiswidth(),thisheight(),QPixmap(:/image/))。}MyWidget::~MyWidget(){ delete ui。 InitPlayer()。 Srikrishna Karanam。 Ketan Bacchuwar。這使我認(rèn)識到,在以后的生活中、工作中,遇到問題時(shí),一定要把握好整體框架,將問題從上到下分解,一步一步腳印,這樣才能少走彎路,更好的解決問題。在本次程序設(shè)計(jì)的過程中,我體會到了只有真正的實(shí)踐才能牢牢掌握知識,同時(shí),我認(rèn)識到,光靠學(xué)校教材上的知識在現(xiàn)實(shí)生活中是遠(yuǎn)遠(yuǎn)不夠的,只有更多的學(xué)習(xí)新知識,緊跟知識發(fā)展潮流的腳步,切實(shí)做到理論與實(shí)踐相結(jié)合,才能達(dá)到真正意義上的學(xué)以致用。結(jié) 論在各位老師的悉心指導(dǎo)、同學(xué)們的無私幫助和自己的辛苦努力下,我大體上完成了“音樂播放器”軟件的開發(fā),不過由于時(shí)間倉促,加之經(jīng)驗(yàn)還不是很足,可能仍存在著許多的不足,一些功能還沒有實(shí)現(xiàn),比如這個(gè)播放器不能實(shí)現(xiàn)在線播放,如果當(dāng)前播放的歌曲的歌詞不存在,不能在網(wǎng)上搜索歌詞以及下載歌詞到本地等,總之,整個(gè)播放器還有許多功能需要進(jìn)一步完善和改進(jìn)。 volume_slidersetSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum)。因此,控制適當(dāng)?shù)囊袅枯敵觯俏覀冊谛蕾p美妙的音樂的前必須經(jīng)歷的步驟。 media_objectplay()。 int index = (media_objectcurrentSource())。 connect(skip_forward_action, SIGNAL(triggered()), this, SLOT(SkipForward()))。 skip_forward_actionsetText(tr(下一首(Ctrl+Right)))。播放下一曲也差不多,其代碼為://設(shè)置下一首動(dòng)作 skip_forward_action = new QAction(this)。 media_objectplay()。 int index = (media_objectcurrentSource())。 connect(skip_backward_action, SIGNAL(triggered()), this, SLOT(SkipBackward()))。 skip_backward_actionsetText(tr(上一首(Ctrl+Left)))。//設(shè)置上一首動(dòng)作 skip_backward_action = new QAction(this)。圖8 播放器暫停播放效果圖否則,則播放器進(jìn)入到播放狀態(tài),其效果圖如圖9所示。 } else media_objectplay()。 單擊播放按鈕(快捷鍵為F5),利用QT中的信號與槽機(jī)制,發(fā)送信號triggered(),進(jìn)入到以下的槽函數(shù)setpaused()中,執(zhí)行具體的播放動(dòng)作。 play_actionsetShortcut(QKeySequence(F5))。 play_actionsetIcon(QIcon(:/image/))。//該構(gòu)造函數(shù)沒有寫入文字 tool_barsetFloatable(true)。圖7 播放器添加歌曲效果圖 播放歌曲是“音樂播放器”的靈魂所在,將添加的歌曲通過播放器播放出來。將添加的音頻文件存放到播放列表中,如果點(diǎn)擊播放按鈕,則默認(rèn)播放播放列表的第一首歌曲。 } if(!()) { //如果媒體源列表不為空,則將新加入的第一個(gè)媒體源作為當(dāng)前媒體源 meta_information_resolversetCurrentSource((index))。 foreach(QString string, list) { Phonon::MediaSource source(string)。 if(()) return。如果我們點(diǎn)擊播放器上的添加文件按鈕,其則發(fā)送一個(gè)信號triggered(),在C++中,消息就是成員函數(shù)的調(diào)用[11]。 open_actionsetEnabled(true)。 open_actionsetText(tr(播放文件(Ctrl+O)))。//設(shè)置添加音樂文件動(dòng)作 QAction *open_action = new QAction(this)。主界面的實(shí)際效果如圖6所示。 setLayout(main_layout)。 main_layoutaddWidget(widget_bar)。 main_layoutaddWidget(top_label)。 tool_barsetAllowedAreas(QT::TopToolBarArea | QT::BottomToolBarArea)。 //自己加的,加一條豎線 tool_baraddAction(ReturnAction)。 tool_baraddAction(open_action)。 tool_baraddAction(skip_forward_action)。 tool_baraddAction(stop_action)。 //將以上部件添加到工具欄 tool_baraddWidget(label)。 labelsetScaledContents(true)。 labelsetMaximumSize(30,30)。 widget_baraddSeparator()。 widget_baraddSeparator()。 widget_baraddSeparator()。 connect(LRCAction, SIGNAL(triggered()), this, SLOT(SetLrcShown()))。 LRCActionsetShortcut(QKeySequence(F2))。 connect(PLAction, SIGNAL(triggered()), this, SLOT(SetPlayListShown()))。 PLActionsetShortcut(QKeySequence(F4))。 //QSizePolicy類是描述水平和垂直修改大小策略的一種屬性 time_labelsetSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)。 time_labelsetToolTip(tr(當(dāng)前時(shí)間/總時(shí)間))。 //設(shè)置顯示時(shí)間的標(biāo)簽 QToolBar *widget_bar = new QToolBar(this)。//運(yùn)行點(diǎn)擊進(jìn)入外部鏈接 top_labelsetAlignment(QT::AlignCenter)。 top_labelsetTextFormat(QT::RichText)。//綁定源和接收器 //關(guān)聯(lián)媒體對象的tick信號來更新播放時(shí)間的顯示 connect(media_object, SIGNAL(tick(qint64)), this, SLOT(UpdateTime(qint64)))。 Phonon::AudioOutput *audio_output = new Phonon::AudioOutput(Phonon::MusicCategory, this)。 setMaximumSize(400, 200)。 setWindowIcon(QIcon(:/image/))。而phonon的架構(gòu)主要是以下三個(gè)部分:1)media object其主要用來管理多媒體來源,提供基本的播放控制 2)sinks多媒體輸出,接受media object來的數(shù)據(jù),并接受其控制播放,而由sink來處理這些多媒體 3)paths用來連接media object與sink。也減少了軟件開發(fā)過程中出錯(cuò)的機(jī)率。由于軟件的開發(fā)使用的語言是C++,C++是具有良好的面向?qū)ο缶幊坦δ艿恼Z言,其強(qiáng)大的類的機(jī)制,結(jié)合QT中的信號與槽機(jī)制,實(shí)現(xiàn)通信。圖5播放器GUI界面效果圖按鈕的代碼設(shè)計(jì)是指按鈕功能的代碼實(shí)現(xiàn),在本次設(shè)計(jì)的“音樂播放器”中,由于按鈕功能是軟件的控制臺,播放、暫停、上一曲、下一曲、停止、歌詞顯示、播放列表顯示、音量調(diào)節(jié)、添加播放文件都需通過按鈕,所以,按鈕功能也是一個(gè)非常需要注意的地方。雖說不是顯得很大氣,不過也還算是眼前一亮。在本次設(shè)計(jì)的過程中,各個(gè)GUI部件的功能圖如圖4所示。比方說,蘋果公司的產(chǎn)品之所以在全世界這么受歡迎,一部分原因就是其界面效果的美觀大方。音樂播放器音量控制上一曲下一曲歌詞播放、暫停播放列表添加文件主界面圖3音樂播放器系統(tǒng)模塊圖、GUI界面設(shè)計(jì)播放器的GUI界面設(shè)計(jì)主要是兩個(gè)方面的設(shè)計(jì):主界面布局設(shè)計(jì)和按鈕的代碼設(shè)計(jì)。將播放器系統(tǒng)劃分為多個(gè)子模塊是為了降低其開發(fā)的復(fù)雜度,而且還能提高軟件的可讀性、可維護(hù)性,從而使得各個(gè)模塊之間應(yīng)盡可能獨(dú)立。自頂向下將軟件系統(tǒng)劃分為若干子模塊。C++的核心概念是類[9],其重要的特征還是類[10]。而我使用的編程語言是C++,這本來是面向?qū)ο蟮恼Z言,面向?qū)ο缶幊虖拿嫦驅(qū)ο笤O(shè)計(jì)開始,而面向?qū)ο笤O(shè)計(jì)從抽象開始。而現(xiàn)在我們要做的是如何把邏輯模型轉(zhuǎn)化為物理模型,著手實(shí)現(xiàn)軟件的需求,描述系統(tǒng)的總體結(jié)構(gòu)。因此,對于一個(gè)成功的軟件設(shè)計(jì),功能模塊的設(shè)計(jì)是關(guān)鍵。工作原理如圖2所示。同時(shí),在播放列表上還有歌詞顯示按鈕,如果歌詞存在于相關(guān)的路徑下,點(diǎn)擊歌詞按鈕則顯示或隱藏歌詞。播放器的整個(gè)工作原理就是這樣一個(gè)流程圖。2 播放器的基本設(shè)計(jì)需求 基本設(shè)計(jì)需求根據(jù)我們的軟件需求分析,可獲得軟件系統(tǒng)的基本功能需求,以下從不同的角度來描述系統(tǒng)的需求,并且使用圖例來描述,系統(tǒng)的功能需求,我們分成幾個(gè)部分來概括,即播放器的基本控制需求,播放器列表管理需求如圖1所示。 本款QT播放器開發(fā)采用的是結(jié)構(gòu)化生命周期法,其理念是把整個(gè)系統(tǒng)開發(fā)過程分成若干個(gè)階段,每個(gè)階段完成相應(yīng)的任務(wù),從而開發(fā)出我們想要的產(chǎn)品軟件。通常sink是一個(gè)播放的裝置(例如聲卡等)。而提供多媒體數(shù)據(jù)給media object的則為media source,在給media object之前通常是raw data,再由media object迚行轉(zhuǎn)換。整體來說,Phonon的架構(gòu)只要記住三個(gè)東西:media object Phonon的基礎(chǔ),用于管理多媒體來源。Phonon庫是一個(gè)跨平臺多媒體框架,能夠在QT應(yīng)用程序中使用與播放影音
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1