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

正文內容

嵌入式系統(tǒng)課程設計音樂播放器-文庫吧資料

2025-06-23 15:54本頁面
  

【正文】 ometry().width() thisparentWidget()x()) 20) { thismove(thisparentWidget()x()thisframeGeometry().width(),thisy())。 (size, size())。}void musicList::listWriteSettings()//記錄播放列表的位置,大小信息{ QSettings settings(yafeilinux,Phonon LIST)。 move(pos)。 QPoint pos = (pos, QPoint(thisx(),thisy()+150)).toPoint()。 eaccept()。 }}void musicList::closeEvent(QCloseEvent *e){ emit listClose()。 break。}void musicList::changeEvent(QEvent *e){ QWidget::changeEvent(e)。 thissetWindowFlags(Qt::Tool )。 listReadSettings()。}void lrcWindow::setLrcWidth(){ lrcWidth = 0。}void lrcWindow::timeout(){ lrcWidth += length/85。 (Qt::yellow)。 (textPath)。 QPainterPath textPath。 (lg)。 (,QColor(61,214,191,250))。 (,QColor(61,214,191,250))。 QLinearGradient lg(0,20,0,50)。 //使用該行代碼可以實現(xiàn)反鋸齒,使歌詞顯示更漂亮,但是會明顯增加CPU占用率 QFont font(tr(Times New Roman),30,QFont::Bold)。}void lrcWindow::paintEvent(QPaintEvent *){ QPainter painter(this)。 (evglobalPos())。}void lrcWindow::contextMenuEvent(QContextMenuEvent *ev){ QMenu menu。 eaccept()。}void lrcWindow::mouseMoveEvent(QMouseEvent *e){ if(ebuttons() amp。 } else if(eventbutton() == Qt::MidButton)//點擊鼠標滾輪 close()。}void lrcWindow::mousePressEvent(QMouseEvent *event){ if(eventbutton() == Qt::LeftButton) { dragPosition = eventglobalPos() frameGeometry().topLeft()。 thismove(400,700)。 timer = new QTimer(this)。D)),this)。//背景透明 thissetCursor(Qt::OpenHandCursor)。 thissetText(tr(Music ...))。}:include include QMouseEventinclude QMenuinclude QTimerinclude QDebuginclude QPainterlrcWindow::lrcWindow(QWidget *parent): QLabel(parent){ thissetWindowFlags(Qt::SubWindow |Qt::FramelessWindowHint| Qt::WindowStaysOnTopHint)。 ()。 QTextCodec::setCodecForTr(QTextCodec::codecForLocale())。}。 void iconActivated(QSystemTrayIcon::ActivationReason reason)。 void removeSlot()。 void musicAboutToFinish()。 void musicInformationStateChanged(Phonon::State,Phonon::State)。 void showTime(qint64)。 void on_toolButton_previous_clicked()。 void on_toolButton_stop_clicked()。 void on_toolButton_lrcD_clicked(bool checked)。private slots: void on_toolButton_List_clicked(bool checked)。 QTextEdit *text。 void readSettings()。 QSystemTrayIcon *trayicon。 QAction *exit。 QAction *open。 QAction *play。 QIcon *iconplay。 lrcWindow *lrc2。 QLabel *lrcLabel。 QListPhonon::MediaSource musicSourceList。 Phonon::SeekSlider *seekSlider。 Phonon::VideoWidget *videoWidget。 Phonon::MediaObject *audio。private: Ui::Widget *ui。 void moveEvent(QMoveEvent *)。 void dropEvent(QDropEvent *)。 void contextMenuEvent(QContextMenuEvent *)。 void wheelEvent(QWheelEvent *)。 void setCurrentLrc()。 ~Widget()。namespace Ui { class Widget。private:}。 void moveEvent(QMoveEvent *)。protected: void changeEvent(QEvent *e)。 void listReadSettings()。 ~musicList()。endif // LRCWINDOW_H:ifndef MUSICLIST_Hdefine MUSICLIST_Hinclude QWidgetnamespace Ui { class musicList。private slots: void timeout()。 void contextMenuEvent(QContextMenuEvent *ev)。protected: void mousePressEvent(QMouseEvent *)。 qreal length。private: QPoint dragPosition。} void setLrcWidth()。 QAction *exit。其界面窗口如圖15所示。播放器運行時的整體效果如圖11所示:圖11播放器整體運行時效果 此時播放器的主控制窗口界面如圖12所示。2011年附錄(流程圖、源代碼):附錄1 相關流程圖圖5播放的三種狀態(tài) 圖6 播放功能流程圖 圖7 暫停功能的流程圖8 停止功能流程圖9上一首功能流程圖10 打開功能操作流程附錄2 系統(tǒng)運行效果本播放器系統(tǒng)一共有3個界面窗口,分別是播放器的主控制窗口、播放列表窗口 和歌詞顯示窗口。此外,在虛擬機下運行的QT也遇到了版本的問題,這些問題都將在以后的學習過程中加以解決。在嵌入式系統(tǒng)基礎上,主要分析了Linux操作系統(tǒng)的的特點和優(yōu)勢,通過Linux系統(tǒng)下的QT編譯環(huán)境的學習,了解了音頻解碼模塊,簡單應用的QT creator下的phonon構架設計了音樂播放器。 最終通過編譯后可看到如附錄2的界面,可以通過按鈕實現(xiàn)播放器的簡單功能。應用程序不用去管多媒體播放是通過什么實現(xiàn)的,如gstreamer、xine,只需調用相應的接口就行,但這中間需要一個中轉,被稱為backend。目前在Qt ,它能實現(xiàn)底層的多媒體播放功能,在一般情況下上層的接口phonon模塊更適合實現(xiàn)這些功能。我此次的任務是多媒體播放器的設計,而播放器需要用到QT phonon。 主要程序文件(代碼見附錄)1)頭文件(為類加入相應的標準流,庫)2)源文件(完成各種類的定義與實現(xiàn))第四章 調試分析QT creator 在使用的過程中也出現(xiàn)了很多問題,首先是版本的問題,一開始編寫調試程序的時候應當選擇在WINDOWS下能夠直接運行的QT SDK,下一步就是在虛擬機下QT creator的安裝這里要注意的問題就是QT編譯環(huán)境的建立。其具體操作是:當用戶想要刪除一個MP3文件時,首先用鼠標選擇該文件,然后右擊音樂曲目點擊刪除就可以了,剩下的工作由系統(tǒng)完成。刪除列表中的一首 MP3 文件:對播放列表有添加功能當然也必然存在刪除操作。具體的添加過程是:當系統(tǒng)獲取了一個添加媒體文件的命令時,會彈出一個文件對話框,等待用戶選擇媒體文件,這時,用戶可以選擇一個MP3文件。具體的操作流程如圖10(見附錄1)所示。打開文件并播放:打開文件并播放是用戶通過點擊打開按鈕向系統(tǒng)發(fā)送的命令。它的具體操作過程是:當用戶發(fā)送了播放下一首的命令后,系統(tǒng)就會停止當前正在播放的文件,然后去播放當前播放文件的后面一個文件。它是指用戶對播放器系統(tǒng)發(fā) 送播放下一首的命令,然后由播放器系統(tǒng)做出播放下一首的反應。 上一首的具體流程如圖9(見附錄1)所示。它是指用戶對播放器系統(tǒng)發(fā)送的命令(播 放上一首),然后由播放器系統(tǒng)做出播放上一首的反應。如果是手動停止則使播放控件停止播放,計時器停止計時,并將當前播放進度置0;如果是自然停止這執(zhí)行第3步;(3)檢查播放模式是否是單曲播放模式,如果是則結束停止過程,否則執(zhí)行第4步; (4) 如果播放模式是循環(huán)播放且播放結束的是播放列表中的最后一首,這將播放列表的索引置0,否則直接播放下一首。停止功能的設計流程如圖8(見附錄1)所示。停止播放:停止當前MP3文件的播放有三種方式,第一種是當播放器播放到當前文件的最 后,系統(tǒng)會自動停止播放;第二種是用戶可以點擊停止播放按鈕來停止當前媒體文件的播放。既然是暫停播放,那么它前面的狀態(tài)就必然是播放狀態(tài),即暫停狀態(tài)只能由播放狀態(tài)轉換而來。如果是暫停狀態(tài),那么繼續(xù)播放,如果不是暫停狀態(tài),則執(zhí)行第2步;(2)檢查播放列表中是否有媒體文件,如果沒有則調用添加歌曲過程進行添加,然后再次執(zhí)行本過程進行播放;如果播放列表中有文件則執(zhí)行第3步;(3)檢查播放列表索引,判斷是否選中了播放列表的一首MP3來進行播放,如果沒有選擇,則選擇播放列表中的第一首后執(zhí)行第4步,如果已經選擇了要播放的MP3 則直接執(zhí)行第4步(4) 判斷要播放的MP3在播放列表中的位置,如果是第一首則將上一首按鈕置為無效,否則置為有效;如果是最后一首,則將下一首按鈕置為無效,否則置為有效。下面具體介紹播放功能是怎樣設計的,其具體流程如圖6(見附錄1)所示。下面將根據上圖的各種轉換關系,詳細介紹各種播放控制類型的設計與實現(xiàn)播放:播放功能是媒體播放器所有控制功能中最重要的一個功能,沒有了它,播放器不能播放,也就不能稱之為播放器了。在本播放器系統(tǒng) 中,播放控制主要集中在對播放器的控制界面上的操作。播放列表界面:本播放器系統(tǒng)的播放列表窗口界面的設計主要是用來方便使用者配置管理播放 器的播放列表,以提供給播放器更完整的功能。10)進度控制條 進度控制條的設計,是用來方便用戶進行控制播放媒體文件進度的,它的移動將直接改變媒體文件的當前播放進度,同時歌詞顯示實時窗口的歌詞也將按照進度進行調整。因為與音量控制有關,所以在播放器中將其置于音量控制條的左方。當用戶點擊此按鈕時,系統(tǒng)將檢查播放器的聲音狀態(tài)。如果當前狀態(tài)為顯示,則將其隱藏;反之,如果當前狀態(tài)為隱藏,則將其顯示。7) 歌詞按鈕的設計LRC是MP3歌詞文件的格式,此按鈕可以控制歌詞顯示窗口的顯示與隱藏。6) 列表按鈕的設計 它主要是對播放列表窗口進行顯示/隱藏控制,當用戶點擊此按鈕后,如果當前列表窗口的狀態(tài)為顯示狀態(tài)的話,用戶的操作將會隱藏列表窗口。這樣設計的目的,是使得整個功能控制按鈕的順序與文件在列表中的順序相似。 4) 下一首按鈕的設計同樣,它的設計也是與播放列表的存在有關,如果沒有播放列
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1