999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt/Embedded的MP3音樂播放器的設計與實現

2012-09-26 02:26:48焦正才樊文俠
電子設計工程 2012年7期
關鍵詞:嵌入式多媒體

焦正才,樊文俠

(西安工業大學 陜西 西安 710032)

隨著計算機技術和網絡技術的飛速發展,嵌入式系統的廣泛應用,PDA、掌上設備、WAP手機以及DVD/EVD播放機等嵌入式設備的迅速普及,而這些設備同時擁有華麗美觀、易于操作的圖形用戶界面。MP3作為高質量的音樂壓縮標準,數據壓縮比率大,較小的數據量以及質量高的播放效果[1]。研究開發一款功能強大、界面友好、操作簡單的MP3播放器,普通用戶可以通過它在多姿多彩的多媒體世界中暢游,來滿足自己的視聽享受的要求,這些使得嵌入式媒體播放器成為了一個新的研究熱點。近年來,在完全遵循GPL(通用公共許可證)條款下,產生的Qt/Embedded,使得許多嵌入式開發者轉到了Qt/Embedded。因Qt使用“一次編寫,隨處編譯”的方式為開發跨平臺的圖形用戶界面應用程序提供了一個完整的C++應用程序開發框架。

1 Qt/Embedded簡介

Qt是Trolltech(奇趣)公司的標志性產品,是用于創建Linux下的圖行軟件中最出色的軟件包之一。它是眾所周知的桌面環境KDE所使用的工具包。Qt不僅適用于UNIX/Linux,而且還可以用于Windows。Qt是一個用于桌面系統和嵌入式開發的跨平臺應用程序框架。它包括一個直觀的應用接口程序函數(API)和一個豐富的類庫,以及用于GUI開發和國際化的集成工具,另外它還支持JavaTM和C++開發。Qt讓企業無須重新編寫源代碼,便可以構建運行在不同桌面系統操作系統和嵌入式設備上的軟件應用程序。針對范圍廣泛的各行各業,包括GoogleTM、Adobe@Lucasfilm和 SkypeTM,通過在Qt一個平臺上的軟件投資開發而涵蓋其它眾多平臺,Qt可以縮短投入市場的時間并且提高生產效率[2]。

1.1 Qt/Embedded的優勢

1)針對多個平臺只編寫一次代碼;

2)獨特的開發方式;

3)易學易用的模塊化的類庫;

4)在單一應用程序中可混合網絡和本地代碼。

1.2 Qt/Embedded的安裝與開發環境的配置

Windows下開發環境的搭建:安裝Qt SDK即可,它是一個完整的Qt開發環境,包括特定版本的Qt庫和集成開發環境-Qt Creator IDE。

1.3 Qt的3個主要基類

1)QObject類是所有能夠處理 signal、slot和事件的 Qt對象的基類。

2)QApplication類負責GUI應用程序的控制流和主要的設置,它包括主事件循環體,負責處理和調度所有來自窗口系統和其他資源的事件和處理應用程序的開始、結束以及會話管理的功能。對于一個應用程序來說,建立此類的對象是必不可少的。其中,QApplication是QObject類的子類。

3)QWidget類是所有用戶接口對象(組件)的基類,它是用戶界面的單元組成部分,它接收鼠標、鍵盤和其他從窗口系統來的事件,并把它自己繪制在屏幕上。

1.4 Qt的2個核心技術:信號和槽

信號和槽是QT自行定義的一種通信機制,它獨立于標準的C/C++語言,因此要正確的處理信號和槽,必須借助一個稱為元對象編譯器moc(Meta Object Compiler)的QT工具,該工具是一個C++預處理程序,它為高層次的事件處理自動生成所需要的附加代碼[4]。其中,信號會在某個特定情況或是動作下被觸發,槽是等同于接收并處理信號的函數。如圖1所示。

圖 1 Qt中 signal(信號)與 slot(槽)機制Fig.1 Signal and slot of Qt

2 Qt/Embedded圖形用戶界面開發流程

圖2 Qt圖形用戶界面開發流程圖Fig.2 Graphical user interface development flow chart of Qt

3 基于Qt/Embedded的MP3播放器設計

文中基于Qt/Embedded設計的圖形用戶界面,利用FFmpeg解碼庫,它是一個高精度的開源MPEG音頻解碼庫,其輸出為24 bit。通過使用FFmpeg解碼庫對MP3文件進行解碼,可以取得較好的播放效果,同時使用其提供的應用接口程序函數,可以實現對音頻數據的解碼和順序視聽。筆者采取模塊化的設計模式,來實現用戶視聽MP3的基本功能。

3.1 MP3播放器主窗口

MP3音樂播放器主窗口,它是播放器的控制窗口,完成與用戶的人機交互。設計的MP3播放器控制界面如圖3所示,其主要功能是完成對MP3歌曲播放的管理,諸如打開文件、歌曲列表、顯示歌曲總時間、歌詞的顯示和歌曲播放進度、歌名、播放和暫停、上下曲和音量的增減進度條。下面對主要的功能模塊進行介紹。

圖3 MP3 Player界面Fig.3 Interface of MP3 Player

3.2 MP3播放器文件的打開功能

Qt中的QFileDialog標準文件對話框類,用戶通過這些函數可以很方便地定制自己的文件對話框。其函數形式如下:

在Windows和Mac OS X下,這個靜態函數將使用本地文件對話框而不是QFileDialog,除非應用程序的風格被設置為本地風格以外的某種風格。可以通過調用集成這個類,其中的getOpenName()函數,完成對MP3歌曲文件的選擇。

3.3 音量調節功能模塊(Qt phonon多媒體框架)

目前在Qt 4.6中實現多媒體播放圖形界面主要依賴于phonon框架,提供一套多媒體框架,提供多媒體回放的功能。其實QT中還有一個Multimedia模塊,實現底層的多媒體播放功能,為使用音頻和視頻的應用程序開發提供的一個框架。開發人員可以大概了解多媒體播放是通過什么實現的,只需調用相應的接口就行,但這中間需要一個中轉,被稱為backend。Qt phonon多媒體文件的播放主要過程包括:文件讀取、分流、解碼、輸出。如圖4所示。

3.4 MP3歌曲計時和時間顯示模塊

MP3文件格式是由一系列的幀組成的,幀是MP3文件的最小單位。如表1[5-6]所示。

計算MP3歌曲的時間,首先要讀取MP3歌曲的數據流,而在MP3文件幀頭的第二個字節里保存著MP3版本和Layer信息;第三個字節保存了比特率信息,通過查表可以獲取幀頭中的比特率,然后計算MP3的時間[3]。MP3的波特率rate與播放時間time符合公式(1):

圖4 Qt phonon多媒體框架Fig.4 Multimedia framework of Qt phonon

表1 MP3文件結構和功能描述Tab.1 MP3 files structure and function description

3.5 歌詞顯示模塊

在用戶瀏覽網頁和處理相關信息時,本設計的MP3播放器為用戶量身定做了一個小的字幕歌詞滾動條。可能有的開發者會有疑問,客戶既然在做其他的事情,注意力肯定不在音樂上,歌詞的顯示有必要嗎?答案是肯定的,我想很多人都用這種情況:看網頁聽歌的時候突然想看看剛才沒聽清楚的歌詞是什么,在這個時候,歌詞的顯示展示出了它最大的魅力。

相關程序段如下:

同時也考慮了一些特殊情況,如若0.1 s不顯示歌詞,則顯示“Music...

其中最重要的一點就是時間與歌詞的更新顯示,相關程序段如下:

4 結 論

文中基于Qt/Embedded設計的MP3應用播放器,目前已經實現,能夠在Windows操作平臺上運行正常,實現了基本的打開歌曲、歌曲切換、暫停、歌曲列表、歌詞和時間進度條的功能。此播放器是在Windows操作系統下的QT集成環境下完成的,只要將此播放器的代碼在其他QT能夠運行的平臺上重新編譯就可以實現在當前平臺上運行,真正做到了“一次編寫,處處編譯“的目的。Qt/Embedded使用了Qt在桌面上的所有功能,豐富的接口應用程序函數和基于組件的模塊化編程思想,將會使Qt/Embedded成為未來嵌入式的主流GUI。

[1]王靈芝,陳雷松.基于嵌入式Linux與Qt的MP3播放器的設計[J].漳州師范學院學報:自然科學版,2009(1):39-43.

WANG Ling-zhi,CHENG Lei-song.Design of MP3 player based on embedded Linux and Qt[J].Zhang zhou Teachers College:Natural Science Edition,2009(1):39-43

[2]博創科技.嵌入式系統試驗指導書[M].北京:北京博創興業科技有限公司,2006.

[3]汪勇,熊前興.MP3文件格式解析[J].計算機應用軟件,2004(12):126-128.

WANG Yong,XIONG Qian-xing.MP3 file format parsing[J].Computer Application Software,2004(12):126-128.

[4]蘆東昕,周建彬,譚振華.基于Qt/Embedded的控件擴展研究與實現[J].計算機技術與發展,2006(10):97-100.

LU Dong-xin,ZHOU Jian-bin,TAN Zhen-hua.Reseacher&implementation of extended widgets based on Qt/Emdedded[J].Computer Technology and Development,2006(10):97-100.

[5]王森林,莊圣賢.基于嵌入式Linux的MP3播放器設計[J].重慶工學院學報,2007(3):65-68.

WANG Sen-lin,ZHUANG Shen-xian.Design of MP3 player on embedded Linux[J].Chongqing Institute of Technology,2007(3):65-68.

[6]何劍鋒,鄔文彪.嵌入式Linux系統的Qt/Embedded圖形界面開發[J].電子工程師,2007(7):46-48

HE Jian-feng,WU Wen-biao.Development of Qt/Embedded graphical interface based on linux[J].Electronics Engineers,2007(7):46-48.

猜你喜歡
嵌入式多媒體
借助多媒體探尋有效設問的“四度”
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
多媒體在《機械制圖》課中的應用
消費導刊(2018年10期)2018-08-20 02:56:28
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
初中化學因多媒體而綻放光彩
巧用多媒體 讓課堂練筆更加有效
中小學電教(2016年3期)2016-03-01 03:40:51
多媒體達人煉成記
河南電力(2016年5期)2016-02-06 02:11:40
適切 適時 適度——說說語文課堂的多媒體使用
語文知識(2015年9期)2015-02-28 22:01:42
主站蜘蛛池模板: 亚洲黄色视频在线观看一区| 国产白浆一区二区三区视频在线| 国产福利免费视频| 免费国产福利| 99这里精品| 在线观看国产精品一区| 操操操综合网| 91探花在线观看国产最新| 久草视频精品| 日韩不卡免费视频| 国产丰满成熟女性性满足视频| 国产成人精品在线| 老司机精品99在线播放| 国产精品美女自慰喷水| 69免费在线视频| 日韩视频福利| 欧美成人a∨视频免费观看| 99re在线视频观看| 欧美福利在线观看| 亚洲福利网址| 欧美午夜在线观看| 国产又爽又黄无遮挡免费观看| 大学生久久香蕉国产线观看 | 欧美日韩在线观看一区二区三区| 国产亚洲精品无码专| 欧美日韩一区二区在线免费观看 | 熟女日韩精品2区| 91精品小视频| 伊人久久精品无码麻豆精品| 国产精品欧美激情| 在线视频亚洲色图| 女同国产精品一区二区| 亚洲综合第一页| 久久精品91麻豆| 极品尤物av美乳在线观看| 欧美亚洲日韩中文| 91福利在线看| 亚洲AV色香蕉一区二区| 国内精自视频品线一二区| 亚洲大尺码专区影院| 毛片免费在线视频| 香蕉视频在线观看www| 国产主播喷水| 毛片网站在线看| 亚洲日本中文综合在线| 欧美激情二区三区| 色吊丝av中文字幕| 色婷婷电影网| 久久久久久国产精品mv| 国产91视频免费观看| 亚洲福利一区二区三区| 国产亚洲欧美在线人成aaaa| 国产黑丝视频在线观看| 91热爆在线| 日韩激情成人| 国产女人综合久久精品视| 女人爽到高潮免费视频大全| 国产男女免费完整版视频| 天天摸天天操免费播放小视频| 国产国模一区二区三区四区| 日韩国产欧美精品在线| 色综合婷婷| 国产在线欧美| 97精品伊人久久大香线蕉| A级毛片无码久久精品免费| 97se亚洲| 国产亚洲欧美日韩在线观看一区二区 | 欧美日韩午夜视频在线观看| 亚洲91在线精品| 精品亚洲国产成人AV| 97超碰精品成人国产| 巨熟乳波霸若妻中文观看免费| 欧美一区二区福利视频| 亚洲成肉网| 欧美黄网站免费观看| 亚洲精品国产综合99| 日本91视频| 国产精品主播| 乱人伦中文视频在线观看免费| 91po国产在线精品免费观看| 麻豆精品久久久久久久99蜜桃| 欧美 亚洲 日韩 国产|