




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙PAGE xvPAGE ii摘要隨著互聯(lián)網(wǎng)的的發(fā)展,PC機(jī)已經(jīng)不能滿足終端用戶對音頻的需要。雖然目前有各種各樣的計(jì)算機(jī)操作系統(tǒng),如WINDOWS,LINUX,UNIX,MAC OS等以及各種移動開發(fā)平臺,如Android,BlackBerry OS,IOS,Windows Mobile,Windows Phone,Palm等,不同的操作系統(tǒng)需要不同的系統(tǒng)軟件來開發(fā)對應(yīng)的應(yīng)用程序。同樣的功能,卻要開發(fā)多次,這給程序員帶來了冗余的工作量。本文以Qt為基礎(chǔ),對音頻管理系統(tǒng)的實(shí)際設(shè)計(jì)情況進(jìn)行了需求分析,利用軟件工程的開發(fā)流程及面向?qū)ο蟮乃枷?,?gòu)建了音頻管理系統(tǒng)的總體框
2、架,為最終音頻管理系統(tǒng)的實(shí)現(xiàn)提供了理論依據(jù)。測試結(jié)果表明,基于Qt的音頻管理系統(tǒng)可以在Win7的Qt5.2中運(yùn)行,也可以在ubuntu的Qt5.2中運(yùn)行,代碼只需做微小的調(diào)整,減輕程序員的代碼量,節(jié)省開發(fā)成本,為未來的開發(fā)提供一個(gè)重要的參考。關(guān)鍵詞 Qt;音頻管理系統(tǒng);設(shè)計(jì);實(shí)現(xiàn)Design and implementation of audio management system based on QtAbstractWith the development of the Internet,the PC has been unable to meet the needs of the aud
3、io terminal user.Despite various of computer operating system,such as WINDOWS,LINUX,UNIX,MACOS etc,and various of mobile development platform,such as Android,BlackBerry,OS,IOS,WindowsMobile,Windows Phone,Palm etc,different operating systems require different software systems to develop the correspon
4、ding application .The same function needs to develop several times,which brings redundant work for the programmer. This paper,based on the Qt,carrying on the demand analysis of the actual design of the audio management system,using the development process of software engineering and object-oriented
5、idea,constructing the general framework of audio management system,and provides a theoretical basis for the implementation of the final audio management system finally.The test results show that Qt audio management system can run in Win7 based on the Qt5.2 and it can also run on ubuntu Qt5.2,the cod
6、e only minor adjustments,reducing the amount of code programmers,saving development costs,providing an important reference for future development. Key words Qt;audio management system;design; implementation目 錄 TOC o 1-3 h z u HYPERLINK l _Toc17403 摘要 PAGEREF _Toc17403 i HYPERLINK l _Toc23861 Abstrac
7、t PAGEREF _Toc23861 ii HYPERLINK l _Toc3764 1 緒論 PAGEREF _Toc3764 1 HYPERLINK l _Toc25054 1.1 開發(fā)背景 PAGEREF _Toc25054 1 HYPERLINK l _Toc21470 1.2 系統(tǒng)目標(biāo) PAGEREF _Toc21470 1 HYPERLINK l _Toc5138 1.3 基于Qt程序的音頻管理系統(tǒng)的設(shè)計(jì)的必要性 PAGEREF _Toc5138 1 HYPERLINK l _Toc18120 2 關(guān)鍵技術(shù)介紹 PAGEREF _Toc18120 3 HYPERLINK l _T
8、oc29411 2.1 音頻編碼的簡單概念 PAGEREF _Toc29411 3 HYPERLINK l _Toc1874 2.1.1 采樣率和采樣大小 PAGEREF _Toc1874 3 HYPERLINK l _Toc3956 2.1.2 有損和無損 PAGEREF _Toc3956 3 HYPERLINK l _Toc14256 2.1.3 音頻壓縮技術(shù) PAGEREF _Toc14256 3 HYPERLINK l _Toc2631 2.1.4 頻率和采樣率 PAGEREF _Toc2631 3 HYPERLINK l _Toc18705 2.1.5 流特征 PAGEREF _To
9、c18705 4 HYPERLINK l _Toc24504 2.2 音頻編碼 PAGEREF _Toc24504 4 HYPERLINK l _Toc32415 2.2.1 PCM編碼 PAGEREF _Toc32415 4 HYPERLINK l _Toc9604 2.2.2 WAV PAGEREF _Toc9604 4 HYPERLINK l _Toc24957 2.2.3 MP3 PAGEREF _Toc24957 4 HYPERLINK l _Toc10570 2.2.4 OGG編碼 PAGEREF _Toc10570 5 HYPERLINK l _Toc30119 2.2.5 MP
10、3PRO編碼 PAGEREF _Toc30119 5 HYPERLINK l _Toc8304 2.2.6 ACC格式 PAGEREF _Toc8304 5 HYPERLINK l _Toc16100 2.3 音頻解析 PAGEREF _Toc16100 5 HYPERLINK l _Toc23505 2.3.1 MP3文件解析 PAGEREF _Toc23505 5 HYPERLINK l _Toc24099 2.3.2 WMA文件解析 PAGEREF _Toc24099 7 HYPERLINK l _Toc17938 2.3.3 OGG文件的解析 PAGEREF _Toc17938 8 H
11、YPERLINK l _Toc4866 2.4 Qt的事件模型 PAGEREF _Toc4866 8 HYPERLINK l _Toc27046 2.4.1 事件的概念 PAGEREF _Toc27046 9 HYPERLINK l _Toc2642 2.4.2 事件的創(chuàng)建 PAGEREF _Toc2642 9 HYPERLINK l _Toc25525 2.4.3 事件的交付 PAGEREF _Toc25525 9 HYPERLINK l _Toc27079 2.4.4 事件循環(huán)模型 PAGEREF _Toc27079 9 HYPERLINK l _Toc5003 2.4.5 自定義事件 P
12、AGEREF _Toc5003 10 HYPERLINK l _Toc19012 2.5 Qt核心機(jī)制信號與槽 PAGEREF _Toc19012 10 HYPERLINK l _Toc4668 2.5.1 信號 PAGEREF _Toc4668 10 HYPERLINK l _Toc7515 2.5.2 槽 PAGEREF _Toc7515 11 HYPERLINK l _Toc7322 2.5.3 信號與槽的關(guān)聯(lián) PAGEREF _Toc7322 11 HYPERLINK l _Toc8186 3 需求分析 PAGEREF _Toc8186 12 HYPERLINK l _Toc10677
13、 3.1 需求概述 PAGEREF _Toc10677 12 HYPERLINK l _Toc19296 3.2 系統(tǒng)用例圖 PAGEREF _Toc19296 12 HYPERLINK l _Toc31355 3.3 系統(tǒng)關(guān)鍵領(lǐng)域類 PAGEREF _Toc31355 13 HYPERLINK l _Toc32457 4 系統(tǒng)設(shè)計(jì) PAGEREF _Toc32457 14 HYPERLINK l _Toc4913 4.1 系統(tǒng)介紹 PAGEREF _Toc4913 14 HYPERLINK l _Toc12151 4.2 主要功能 PAGEREF _Toc12151 14 HYPERLINK
14、 l _Toc21978 4.3 系統(tǒng)總體模塊 PAGEREF _Toc21978 14 HYPERLINK l _Toc6655 4.3.1 系統(tǒng)總體模塊介紹 PAGEREF _Toc6655 14 HYPERLINK l _Toc27858 4.3.2 系統(tǒng)層次圖 PAGEREF _Toc27858 15 HYPERLINK l _Toc28440 4.4 系統(tǒng)界面模塊介紹 PAGEREF _Toc28440 15 HYPERLINK l _Toc1737 4.4.1 主頁面 PAGEREF _Toc1737 15 HYPERLINK l _Toc13349 4.4.2 以演唱者分類,顯示
15、演唱者所對應(yīng)的歌曲名 PAGEREF _Toc13349 16 HYPERLINK l _Toc25143 4.4.3 以專輯名稱分類,顯示該專輯所對應(yīng)的歌曲名 PAGEREF _Toc25143 16 HYPERLINK l _Toc15169 4.4.4 播放列表 PAGEREF _Toc15169 17 HYPERLINK l _Toc13652 4.4.5 播放控制相關(guān)按鈕 PAGEREF _Toc13652 17 HYPERLINK l _Toc27314 4.4.6 播放進(jìn)度條 PAGEREF _Toc27314 17 HYPERLINK l _Toc19775 4.4.7 打開按
16、鈕 PAGEREF _Toc19775 17 HYPERLINK l _Toc26834 4.5 系統(tǒng)功能模塊劃分 PAGEREF _Toc26834 17 HYPERLINK l _Toc24397 4.5.1 音頻文件管理 PAGEREF _Toc24397 18 HYPERLINK l _Toc30977 4.5.2 播放控制 PAGEREF _Toc30977 18 HYPERLINK l _Toc21185 4.5.3 播放列表 PAGEREF _Toc21185 19 HYPERLINK l _Toc27995 4.6 系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc27995 19 HYP
17、ERLINK l _Toc4270 5 系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc4270 20 HYPERLINK l _Toc19783 5.1 樹形結(jié)構(gòu)顯示 PAGEREF _Toc19783 20 HYPERLINK l _Toc25588 5.1.1 主要相關(guān)代碼及說明 PAGEREF _Toc25588 20 HYPERLINK l _Toc14832 5.1.2 關(guān)鍵技術(shù)應(yīng)用中問題的解決 PAGEREF _Toc14832 22 HYPERLINK l _Toc11166 5.2 播放列表 PAGEREF _Toc11166 22 HYPERLINK l _Toc30367 5.2.1
18、主要相關(guān)代碼及說明 PAGEREF _Toc30367 22 HYPERLINK l _Toc1197 5.2.2 功能實(shí)現(xiàn) PAGEREF _Toc1197 26 HYPERLINK l _Toc24511 5.3 讀取MP3音頻文件 PAGEREF _Toc24511 26 HYPERLINK l _Toc1929 5.3.1 主要相關(guān)代碼 PAGEREF _Toc1929 26 HYPERLINK l _Toc19226 5.3.2 寫代碼時(shí)的思路依據(jù) PAGEREF _Toc19226 29 HYPERLINK l _Toc24012 5.4 播放控制 PAGEREF _Toc2401
19、2 29 HYPERLINK l _Toc8947 5.4.1 主要相關(guān)功能的部分代碼 PAGEREF _Toc8947 29 HYPERLINK l _Toc23419 5.4.2 媒體對象狀態(tài)的簡單介紹 PAGEREF _Toc23419 34 HYPERLINK l _Toc23264 5.5 播放進(jìn)度條 PAGEREF _Toc23264 34 HYPERLINK l _Toc24296 5.5.1 主要相關(guān)功能的部分代碼 PAGEREF _Toc24296 34 HYPERLINK l _Toc5273 6 系統(tǒng)測試 PAGEREF _Toc5273 37 HYPERLINK l _
20、Toc5336 6.1 測試的意義 PAGEREF _Toc5336 37 HYPERLINK l _Toc15382 6.2 測試方法 PAGEREF _Toc15382 37 HYPERLINK l _Toc27294 6.3 測試過程 PAGEREF _Toc27294 37 HYPERLINK l _Toc23978 6.4 單元測試 PAGEREF _Toc23978 38 HYPERLINK l _Toc1613 6.5 測試總結(jié) PAGEREF _Toc1613 38 HYPERLINK l _Toc19973 參考文獻(xiàn) PAGEREF _Toc19973 40 HYPERLIN
21、K l _Toc7465 致謝 PAGEREF _Toc7465 41 HYPERLINK l _Toc15173 外文原文 PAGEREF _Toc15173 42 HYPERLINK l _Toc774 外文翻譯 PAGEREF _Toc774 55PAGE 651 緒論1.1 開發(fā)背景Qt是1991年奇趣科技(Trolltech)開發(fā)的一個(gè)跨平臺的C+圖形用戶界面應(yīng)用程序框架3,9。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。Qt很容易擴(kuò)展,并且允許真正地組件編程。2012年,Qt被Digia收購,之后發(fā)布Qt5.1、5.2版本,提供 HYPERLINK /view/9
22、399069.htm Qt for Android(Alpha) 、Qt for IOS 。Qt的優(yōu)勢在于,良好的可移植性,可支持大多數(shù)操作系統(tǒng),如 Microsoft Windows 7, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等 ; 面向?qū)ο?,Qt良好的封裝機(jī)制使得Qt模塊化程度非常高,代碼可重用性較好,很方便用戶開發(fā)豐富的API,Qt包含250個(gè)以上的C+類,并且有相應(yīng)的幫助文檔;支持2D 3D圖形渲染,支持XML。Qt針
23、對嵌入式環(huán)境推出了Qt Embeeded產(chǎn)品,Qt Embedded具有跨平臺的特點(diǎn),省掉了不少移植軟件的功夫,用模塊化設(shè)計(jì),有彈性,Qt Embedded 最小可以縮到800KB左右,最多可以長到3MB(for Intel x86),使得Qt Embedded 更適合在嵌入式環(huán)境下生存1,5-8,10-11?;赒t跨平臺的圖形用戶界面應(yīng)用程序框架,用的是C+開發(fā)語言。C+語言簡潔靈活,運(yùn)算符的數(shù)據(jù)結(jié)構(gòu)豐富、具有結(jié)構(gòu)化控制語句、程序執(zhí)行效率高,而且同時(shí)具有高級語言與匯編語言的優(yōu)點(diǎn),與其它語言相比,C語言具有可以直接訪問物理地址的優(yōu)點(diǎn),與匯編語言相比又具有良好的可讀性的可移植性??偟脕碚f,C+
24、語言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是盡量兼容C,二是支持面向?qū)ο蟮姆椒?。它操持了C的簡潔、高效的接近匯編語言等特點(diǎn),對C的類型系統(tǒng)進(jìn)行了改革的擴(kuò)充,因此C+比C更安全,C+的編譯系統(tǒng)能檢查出更多的類型錯(cuò)誤。另外,由于C語言的廣泛使用,因而極大的促進(jìn)了C+的普及和推廣。C+語言最有意義的方面是支持面向?qū)ο蟮奶卣?。雖然與C的兼容使得C+具有雙重特點(diǎn),但他在概念上完全與C不同,更具面向?qū)ο蟮奶卣鳌V悄芗揖拥葘⑹且粋€(gè)發(fā)展的趨勢,嵌入式產(chǎn)品也必將走入千家萬戶。而目前PC機(jī)的音頻管理軟件占用的磁盤空間以及內(nèi)存較大所以基于Qt的音頻管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)有很重要的意義?;谶@種形式的把握,也基于對這種技術(shù)的學(xué)習(xí)
25、與理解,我選擇了這個(gè)課題。對音頻解碼技術(shù)進(jìn)行研究,有助于理解其內(nèi)在的原理,能夠幫助我們更好的實(shí)現(xiàn)代碼功能。1.2 系統(tǒng)目標(biāo)系統(tǒng)開發(fā)的總?cè)蝿?wù)是設(shè)計(jì)并實(shí)現(xiàn)一個(gè)音頻管理系統(tǒng)。通過本系統(tǒng)可以添加音頻文件,以演唱者管理音頻文件,以專輯管理音頻文件2,4。你可以有一個(gè)播放列表,方便用戶知道系統(tǒng)中有哪些音樂文件。當(dāng)然了有播放列表,就要有播放功能。選中歌曲,用戶可以點(diǎn)擊播放按鈕,播放音樂文件。當(dāng)然有相應(yīng)的控制功能,上一曲,下一曲?;镜囊袅靠刂?,音量的高低調(diào)節(jié),靜音功能。1.3 基于Qt程序的音頻管理系統(tǒng)的設(shè)計(jì)的必要性隨著計(jì)算機(jī)技術(shù)、電子技術(shù)和通信技術(shù)的迅猛發(fā)展,嵌入式系統(tǒng)已經(jīng)成為最熱門、最有前途的IT應(yīng)用領(lǐng)
26、域之一,成為通訊和消費(fèi)產(chǎn)品的共同發(fā)展方向。它廣泛應(yīng)用于人們在工作生活的各個(gè)方面,幾乎包括了所有的電器設(shè)備。在嵌入式技術(shù)快速發(fā)展的同時(shí),嵌入式音頻設(shè)備已然成為當(dāng)今人類生活中的熱點(diǎn)。對于這些音樂文件的管理也將成為程序員考慮的重點(diǎn)。各種設(shè)備中的操作系統(tǒng)的種類不同,程序員在開發(fā)的時(shí)候總是要做重復(fù)的工作,不能把工作的重點(diǎn)放在設(shè)計(jì)上?;赒t的平臺正好給大家提供了一個(gè)這樣的平臺。代碼不需要太多的改動,就可以運(yùn)行在各種操作系統(tǒng)上。而且Qt是基于模塊的設(shè)計(jì)思想,只需要加載你所需要的模塊,符合嵌入式定制性強(qiáng),模塊簡單的特點(diǎn)。所以基于Qt的音頻管理系統(tǒng)非常的設(shè)計(jì)與實(shí)現(xiàn)非常必要。本系統(tǒng)主要基于Qt跨平臺的圖形用戶界
27、面應(yīng)用程序框架,用的是C+開發(fā)語言,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機(jī)模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。2 關(guān)鍵技術(shù)介紹2.1 音頻編碼的簡單概念2.1.1 采樣率和采樣大小聲音其實(shí)是一種能量波,因此也有頻率和振幅的特征,頻率對應(yīng)于時(shí)間軸線,振幅對應(yīng)于電平軸線。波是無限光滑的,弦線可以看成由無數(shù)點(diǎn)組成,由于存儲空間是相對有限的,數(shù)字編碼過程中,必須對弦線的點(diǎn)進(jìn)行采樣。采樣的過程就是抽取某點(diǎn)的頻率值,很顯然,在一秒中內(nèi)抽取的點(diǎn)越多,獲取得頻率信息更豐富,為了復(fù)原波形,
28、一次振動中,必須有2個(gè)點(diǎn)的采樣,人耳能夠感覺到的最高頻率為20kHz,因此要滿足人耳的聽覺要求,則需要至少每秒進(jìn)行40k次采樣,用40kHz表達(dá),這個(gè)40kHz就是采樣率。采樣率和采樣大小的值越大,記錄的波形更接近原始信號。2.1.2 有損和無損根據(jù)采樣率和采樣大小可以得知,相對自然界的信號,音頻編碼最多只能做到無限接近,至少目前的技術(shù)只能這樣了,相對自然界的信號,任何數(shù)字音頻編碼方案都是有損的,因?yàn)闊o法完全還原。在計(jì)算機(jī)應(yīng)用中,能夠達(dá)到最高保真水平的就是PCM編碼,被廣泛用于素材保存及音樂欣賞,CD、DVD以及我們常見的WAV文件中均有應(yīng)用。因此,PCM約定俗成了無損編碼,因?yàn)镻CM代表了數(shù)
29、字音頻中最佳的保真水準(zhǔn),并不意味著PCM就能夠確保信號絕對保真,PCM也只能做到最大程度的無限接近。我們而習(xí)慣性的把MP3列入有損音頻編碼范疇,是相對PCM編碼的。2.1.3 音頻壓縮技術(shù)PCM音頻流的碼率,采樣率值采樣大小值聲道數(shù) bps。一個(gè)采樣率為44.1KHz,采樣大小為16bit,雙聲道的PCM編碼的WAV文件,它的數(shù)據(jù)速率則為 44.1K162 =1411.2 Kbps。我們常說128K的MP3,對應(yīng)的WAV的參數(shù),就是這個(gè)1411.2 Kbps,這個(gè)參數(shù)也被稱為數(shù)據(jù)帶寬,它和ADSL中的帶寬是一個(gè)概念。將碼率除以8,就可以得到這個(gè)WAV的數(shù)據(jù)速率,即176.4KB/s。這表示存儲
30、一秒鐘采樣率為44.1KHz,采樣大小為16bit,雙聲道的PCM編碼的音頻信號,需要176.4KB的空間,1分鐘則約為10.34M,這對大部分用戶是不可接受的,尤其是喜歡在電腦上聽音樂的朋友,要降低磁盤占用,只有2種方法,降低采樣指標(biāo)或者壓縮。降低指標(biāo)是不可取的,各種音頻壓縮編碼所達(dá)到的音質(zhì)和壓縮比都不一樣。2.1.4 頻率和采樣率采樣率表示了每秒對原始信號采樣的次數(shù),我們常見到的音頻文件采樣率多為44.1KHz,假設(shè)我們有2段正弦波信號,分別為20Hz和20KHz,長度均為一秒鐘,以對應(yīng)我們能聽到的最低頻和最高頻,分別對這兩段信號進(jìn)行40KHz的采樣,結(jié)果是:20Hz的信號每次振動被采樣了
31、40K/20=2000次,而20K的信號每次振動只有2次采樣。顯然,在相同的采樣率下,記錄低頻的信息遠(yuǎn)比高頻的詳細(xì)。這也是CD數(shù)碼聲不夠真實(shí)的原因,CD的44.1KHz采樣也無法保證高頻信號被較好記錄。要較好的記錄高頻信號,看來需要更高的采樣率,在捕捉CD音軌的時(shí)候使用48KHz的采樣率,這是不可取的!這其實(shí)對音質(zhì)沒有任何好處,對抓軌軟件來說,保持和CD提供的44.1KHz一樣的采樣率才是最佳音質(zhì)的保證之一,而不是去提高它。較高的采樣率只有相對模擬信號的時(shí)候才有用,如果被采樣的信號是數(shù)字的,不要去嘗試提高采樣率。2.1.5 流特征隨著網(wǎng)絡(luò)的發(fā)展,人們對在線收聽音樂提出了要求,因此也要求音頻文件
32、能夠一邊讀一邊播放,而不需要把這個(gè)文件全部讀出后然后回放,這樣就可以做到不用下載就可以實(shí)現(xiàn)收聽了。也可以做到一邊編碼一邊播放,正是這種特征,可以實(shí)現(xiàn)在線的直播,架設(shè)自己的數(shù)字廣播電臺成為了現(xiàn)實(shí)。2.2 音頻編碼2.2.1 PCM編碼PCM 脈沖編碼調(diào)制是Pulse Code Modulation的縮寫。我們不需要關(guān)心PCM最終編碼采用的是什么計(jì)算方式,我們只需要知道PCM編碼的音頻流的優(yōu)點(diǎn)和缺點(diǎn)就可以了。PCM編碼的最大的優(yōu)點(diǎn)就是音質(zhì)好,最大的缺點(diǎn)就是體積大。我們常見的Audio CD就采用了PCM編碼,一張光盤的容量只能容納72分鐘的音樂信息。2.2.2 WAV這是一種古老的音頻文件格式,由
33、微軟開發(fā)。WAV是一種文件格式,符合RIFF (Resource Interchange File Format) 規(guī)范。所有的WAV都有一個(gè)文件頭,這個(gè)文件頭包含了音頻流的編碼參數(shù)。WAV對音頻流的編碼沒有硬性規(guī)定,除了PCM之外,還有幾乎所有支持ACM規(guī)范的編碼都可以為WAV的音頻流進(jìn)行編碼。WAV可以使用多種音頻編碼來壓縮其音頻流,不過我們常見的都是音頻流被PCM編碼處理的WAV,但這不表示W(wǎng)AV只能使用PCM編碼,MP3編碼同樣也可以運(yùn)用在WAV中,只要安裝好了相應(yīng)的Decode,就可以欣賞這些WAV了。在Windows平臺下,基于PCM編碼的WAV是被支持得最好的音頻格式,所有音頻軟
34、件都能完美支持,由于本身可以達(dá)到較高的音質(zhì)的要求,因此,WAV也是音樂編輯創(chuàng)作的首選格式,適合保存音樂素材。因此,基于PCM編碼的WAV被作為了一種中介的格式,常常使用在其他編碼的相互轉(zhuǎn)換之中,例如MP3轉(zhuǎn)換成WMA。2.2.3 MP3MP3作為目前最為普及的音頻壓縮格式,為大家所大量接受,各種與MP3相關(guān)的軟件產(chǎn)品層出不窮,而且更多的硬件產(chǎn)品也開始支持MP3,我們能夠買到的VCD/DVD播放機(jī)都很多都能夠支持MP3,還有更多的便攜的MP3播放器等等,雖然幾大音樂商極其反感這種開放的格式,但也無法阻止這種音頻壓縮的格式的生存與流傳。MP3發(fā)展已經(jīng)有10個(gè)年頭了,他是MPEG(MPEG:Movi
35、ng Picture Experts Group) Audio Layer-3的簡稱,是MPEG1的衍生編碼方案,1993年由德國Fraunhofer IIS研究院和湯姆生公司合作發(fā)展成功。MP3可以做到12:1的驚人壓縮比并保持基本可聽的音質(zhì),在當(dāng)年硬盤天價(jià)的日子里,MP3迅速被用戶接受,隨著網(wǎng)絡(luò)的普及,MP3被數(shù)以億計(jì)的用戶接受。MP3編碼技術(shù)的發(fā)布之初其實(shí)是非常不完善的,由于缺乏對聲音和人耳聽覺的研究,早期的mp3編碼器幾乎全是以粗暴方式來編碼,音質(zhì)破壞嚴(yán)重。隨著新技術(shù)的不斷導(dǎo)入,mp3編碼技術(shù)一次一次的被改良,其中有2次重大技術(shù)上的改進(jìn)。2.2.4 OGG編碼Ogg Vorbis的音頻
36、編碼,OGG是一個(gè)龐大的多媒體開發(fā)計(jì)劃的項(xiàng)目名稱,將涉及視頻音頻等方面的編碼開發(fā)。整個(gè)OGG項(xiàng)目計(jì)劃的目的就是向任何人提供完全免費(fèi)多媒體編碼方案。OGG的信念就是:OPEN,F(xiàn)REE,Vorbis。這幾個(gè)個(gè)詞匯成為了OGG項(xiàng)目中音頻編碼的正式命名。目前Vorbis已經(jīng)開發(fā)成功,并且開發(fā)出了編碼器。Ogg Vorbis是高質(zhì)量的音頻編碼方案,官方數(shù)據(jù)顯示:Ogg Vorbis可以在相對較低的數(shù)據(jù)速率下實(shí)現(xiàn)比MP3更好的音質(zhì)。Ogg Vorbis這種編碼也遠(yuǎn)比90年代開發(fā)成功的MP3先進(jìn),她可以支持多個(gè)聲道,這意味著Ogg Vorbis在SACD、DTSCD、DVD AUDIO抓軌軟件的支持下,可
37、以對所有的聲道進(jìn)行編碼,而不是MP3只能編碼2個(gè)聲道。多聲道音樂的興起,給音樂欣賞帶來了革命性的變化,尤其在欣賞交響時(shí),會帶來更多臨場感。這場革命性的變化是MP3無法適應(yīng)的。和MP3一樣,Ogg Vorbis是一種靈活開放的音頻編碼,能夠在編碼方案已經(jīng)固定下來后還能對音質(zhì)進(jìn)行明顯的調(diào)節(jié)和新算法的改良。因此,它的聲音質(zhì)量將會越來越好,和MP3相似,Ogg Vorbis更像一個(gè)音頻編碼框架,可以不斷導(dǎo)入新技術(shù)逐步完善。和MP3一樣,OGG也支持VBR。2.2.5 MP3PRO編碼MP3PRO并不是一種全新的格式,完全是基于傳統(tǒng)MP3編碼技術(shù)的一種改良,本身最大的技術(shù)亮點(diǎn)就在于SBR(Spectra
38、l Band Replication 頻段復(fù)制),這是一種新的音頻編碼增強(qiáng)算法。它提供了改善低位率情況下音頻和語音編碼的性能的可能。這種方法可在指定的位率下增加音頻的帶寬或改善編碼效率。SBR最大的優(yōu)勢就是在低數(shù)據(jù)速率下實(shí)現(xiàn)非常高效的編碼,與傳統(tǒng)的編碼技術(shù)不同的是,SBR更像是一種后處理技術(shù),因此解碼器的算法的優(yōu)劣直接影響到音質(zhì)的好壞。高頻實(shí)際上是由解碼器(播放器)產(chǎn)生的,SBR編碼的數(shù)據(jù)更像是一種產(chǎn)生高頻的命令集,或者稱為指導(dǎo)性的信號源。MP3PRO其實(shí)是一種MP3信號流和SBR信號流的混合數(shù)據(jù)流編碼。SBR技術(shù)可以改善低數(shù)據(jù)流量下的高頻音質(zhì),改善程度約為30%,這種改善可以讓64kbps的
39、MP3達(dá)到128kbps的MP3的音質(zhì)水平。2.2.6 ACC格式AAC(高級音頻編碼技術(shù),Adavanced Audio Coding)是杜比實(shí)驗(yàn)室為音樂社區(qū)提供的技術(shù)。AAC號稱最大能容納48通道的音軌,采樣率達(dá)96KHZ,并且在320Kbps的數(shù)據(jù)速率下能為5.1聲道音樂提供相當(dāng)于ITU-R廣播的品質(zhì)。和MP3比起來,它的音質(zhì)比較好,它能夠節(jié)省大余額30%的存儲空間與帶寬。它是遵循MPEG-2的規(guī)格所開發(fā)的技術(shù)。2.3 音頻解析2.3.1 MP3文件解析MP3的文件格式稱為ID3,一般是位于一個(gè)MP3文件的開頭或末尾的若干字節(jié)內(nèi),附加了關(guān)于該MP3的歌手,標(biāo)題,專輯名稱,年代,風(fēng)格等信息
40、,該信息就被稱為ID3信息,ID3信息分為兩個(gè)版本,v1和v2版。其中:v1版的ID3在MP3文件的末尾128字節(jié),以TAG三個(gè)字符開頭,后面跟上歌曲信息。其中流派一共定義了79種。v2版一般位于mp3的開頭,可以存儲歌詞,該專輯的圖片等大容量的信息。ID3V2一共有4個(gè)版本,但流行的播放軟件一般只支持第3版,即ID3v2.3。由于ID3V1記錄在MP3文件的末尾,ID3V2就只好記錄在MP3文件的首部了。也正是由于這個(gè)原因,對ID3V2的操作比ID3V1要慢。而且ID3V2結(jié)構(gòu)比ID3V1的結(jié)構(gòu)要復(fù)雜得多,但比前者全面且可以伸縮和擴(kuò)展。ID3V1比較簡單,它是存放在MP3文件的末尾,用16進(jìn)
41、制的編輯器打開一個(gè)MP3文件,查看其末尾的128個(gè)順序存放字節(jié),數(shù)據(jù)結(jié)構(gòu)定義如下:char Header3; /*標(biāo)簽頭必須是TAG否則認(rèn)為沒有標(biāo)簽*/char Title30; /*標(biāo)題*/char Artist30; /*作者*/char Album30; /*專集*/char Year4; /*出品年代*/char Comment30; /*備注*/char Genre; /*類型*/ID3V1的各項(xiàng)信息都是順序存放,沒有任何標(biāo)識將其分開,比如標(biāo)題信息不足30個(gè)字節(jié),則使用0補(bǔ)足,否則將造成信息錯(cuò)誤。Genre使用原碼表示,對照表如下:/* Standard genres */0=Blu
42、es;1=ClassicRock;2=Country;3=Dance;4=Disco;5=Funk;6=Grunge;7=Hip-Hop;8=Jazz;9=Metal;10=NewAge;11=Oldies;12=Other;13=Pop;14=R&B;15=Rap;16=Reggae;17=Rock;18=Techno;19=Industrial;20=Alternative;21=Ska;22=DeathMetal;23=Pranks;24=Soundtrack;25=Euro-Techno;26=Ambient;27=Trip-Hop;28=Vocal;29=Jazz+Funk;30=F
43、usion;31=Trance;32=Classical;33=Instrumental;34=Acid;35=House;36=Game;37=SoundClip;38=Gospel;39=Noise;40=AlternRock;41=Bass;42=Soul;43=Punk;44=Space;45=Meditative;46=InstrumentalPop;47=InstrumentalRock;48=Ethnic;49=Gothic;50=Darkwave;51=Techno-Industrial;52=Electronic;53=Pop-Folk;54=Eurodance;55=Dre
44、am;56=SouthernRock;57=Comedy;58=Cult;59=Gangsta;60=Top40;61=ChristianRap;62=Pop/Funk;63=Jungle;64=NativeAmerican;65=Cabaret;66=NewWave;67=Psychadelic;68=Rave;69=Showtunes;70=Trailer;71=Lo-Fi;72=Tribal;73=AcidPunk;74=AcidJazz;75=Polka;76=Retro;77=Musical;78=Rock&Roll;79=HardRock;/* Extended genres */
45、80=Folk;81=Folk-Rock;82=NationalFolk;83=Swing;84=FastFusion;85=Bebob;86=Latin;87=Revival;88=Celtic;89=Bluegrass;90=Avantgarde;91=GothicRock;92=ProgessiveRock;93=PsychedelicRock;94=SymphonicRock;95=SlowRock;96=BigBand;97=Chorus;98=EasyListening;99=Acoustic;100=Humour;101=Speech;102=Chanson;103=Opera;
46、104=ChamberMusic;105=Sonata;106=Symphony;107=BootyBass;108=Primus;109=PornGroove;110=Satire;111=SlowJam;112=Club;113=Tango;114=Samba;115=Folklore;116=Ballad;117=PowerBallad;118=RhythmicSoul;119=Freestyle;120=Duet;121=PunkRock;122=DrumSolo;123=Acapella;124=Euro-House;125=DanceHall;126=Goa;127=Drum&Ba
47、ss;128=Club-House;129=Hardcore;130=Terror;131=Indie;132=BritPop;133=Negerpunk;134=PolskPunk;135=Beat;136=ChristianGangstaRap;137=HeavyMetal;138=BlackMetal;139=Crossover;140=ContemporaryChristian;141=ChristianRock;142=Merengue;143=Salsa;144=TrashMetal;145=Anime;146=JPop;147=Synthpop;每個(gè)ID3V2.3的標(biāo)簽都由一個(gè)標(biāo)
48、簽頭和若干個(gè)標(biāo)簽幀或一個(gè)擴(kuò)展標(biāo)簽頭組成。關(guān)于曲目的信息如標(biāo)題、作者等都存放在不同的標(biāo)簽幀中,擴(kuò)展標(biāo)簽頭和標(biāo)簽幀并不是必要的,但每個(gè)標(biāo)簽至少要有一個(gè)標(biāo)簽幀。標(biāo)簽頭和標(biāo)簽幀一起順序存放在MP3文件的首部。標(biāo)簽頭在文件的首部順序記錄10個(gè)字節(jié)的ID3V2.3的頭部。在文件的首部順序記錄10個(gè)字節(jié)的ID3V2.3的頭部。數(shù)據(jù)結(jié)構(gòu)如下:char Header3; /*必須為ID3否則認(rèn)為標(biāo)簽不存在*/char Ver; /*版本號;ID3V2.3就記錄03,ID3V2.4就記錄04*/char Revision; /*副版本號;此版本記錄為00*/char Flag; /*存放標(biāo)志的字節(jié),這個(gè)版本只定義
49、了三位,稍后詳細(xì)解說*/char Size4; /*標(biāo)簽大小,包括標(biāo)簽幀和擴(kuò)展標(biāo)簽頭。(不包括標(biāo)簽頭的10個(gè)字節(jié))*/2.3.2 WMA文件解析每一個(gè)WMA文件,它的頭16個(gè)字節(jié)是固定的,為十六進(jìn)制的“30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C”,用來標(biāo)識這個(gè)是否為WMA文件。接下來的8個(gè)字節(jié)為一個(gè)整數(shù),表示整個(gè)WMA文件頭部的大小,這個(gè)頭部里面包含了Tag信息等所有非音頻信息,頭部后面的是音頻信息。也就是說從文件開始偏移量為31開始,里面存放了很多幀,有我們需要的標(biāo)準(zhǔn)Tag信息,擴(kuò)展Tag信息,WMA文件控制信息等等。每個(gè)幀不是等長的,但是
50、幀頭是固定的24個(gè)字節(jié),其中前16字節(jié)是用來標(biāo)識這個(gè)幀的名字,后8個(gè)字節(jié)是用來表示這個(gè)幀(包括幀頭)的大小。這一點(diǎn)和MP3文件的ID3V2信息比 較像。Tag信息分別保存在兩個(gè)幀里,分別為標(biāo)準(zhǔn)Tag幀和擴(kuò)展Tag幀。標(biāo)準(zhǔn)Tag幀只包含歌曲標(biāo)題,藝術(shù)家,版權(quán),備注四個(gè)內(nèi)容。它的幀名是十六進(jìn)制的“3326 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C”,在24個(gè)字節(jié)的幀頭后緊跟著5個(gè)分別為2個(gè)字節(jié)的整數(shù),分別表示歌曲標(biāo)題,藝術(shù)家,版權(quán),備注,未知信息的大小,未知信息大部分情況下是不使用的,即它的大小為0的。在這10個(gè)字節(jié)后,這五個(gè)信息的內(nèi)容就按順序存放了。記住
51、,在WMA文件里,所有的文字都是按Unicode寬字符的編碼方式儲存的,而且每個(gè)字符串后面都有一個(gè)0 x00 0 x00結(jié)束字符的。擴(kuò)展Tag幀里面包含的信息的個(gè)數(shù)是不確定的,每個(gè)信息也是按照像幀一樣的方式組織起來的。擴(kuò)展Tag幀的幀名是十六進(jìn)制的“40 A4 D0 D2 07 E3 D2 11 97 F000 A0 C9 5E A8 50”,在24字節(jié)的幀頭(HeadFlag:16,HeadSize:8)后先有一個(gè)兩個(gè)字節(jié)的整數(shù)表示這個(gè)幀里一共有的擴(kuò)展信息個(gè)數(shù)(ExNo)。緊接著是擴(kuò)展信息。每一個(gè)擴(kuò)展信息包含擴(kuò)展信息名字大?。?字節(jié))和對應(yīng)的內(nèi)容。先有一個(gè)兩個(gè)字節(jié)的整數(shù)來表示擴(kuò)展名字信息的大
52、小,接著是擴(kuò)展信息名稱,然后有一個(gè)兩個(gè)字節(jié)的整數(shù)標(biāo)志(Flag)。然后又是一個(gè)兩個(gè)字節(jié)的整數(shù),表示值的大小。接著就是這個(gè)值。當(dāng)擴(kuò)展信息名字為WMFSDKVersion時(shí),這個(gè)值表示的是這個(gè)WMA文件的版本;當(dāng)擴(kuò)展信息名字為WM/AlbumTitle時(shí),這個(gè)值代表的就是專輯名;當(dāng)擴(kuò)展信息名字為WM/Genre時(shí),這個(gè)值代表的就是流派。很容易從擴(kuò)展信息的名字看出這個(gè)值的用途。這些擴(kuò)展信息的名字和值幾乎都是用Unicode的字符串來存儲的,到現(xiàn)在為止只發(fā)現(xiàn)對下面兩個(gè)情況例外。標(biāo)志Flag,只對WM/TrackNumber和WM/Track這兩個(gè)擴(kuò)展信息名字有用,當(dāng)Flag為3的時(shí)候后面的值是以4個(gè)字
53、節(jié)的整數(shù)的形式表示,當(dāng)Flag為0的時(shí)候,曲目信息是以普通的字符串形式表示的。WMA格式有一個(gè)幀全部都是0,相當(dāng)于緩沖區(qū)。如果寫入的歌名比原來長的話,就減少緩沖區(qū)大小,歌名短就增加緩沖區(qū)。這樣就可以保持文件頭的大小不變,每次更新的話只需要重寫文件頭,不需要重寫音頻數(shù)據(jù)。這6個(gè) 字節(jié)其中前面4個(gè)字節(jié)為總標(biāo)簽幀數(shù)。2.3.3 OGG文件的解析“Ogg”意指一種文件格式,可以納入各式各樣自由和開放源代碼的編解碼器,包含音效、視頻、文字(像字幕)與元數(shù)據(jù)的處理。在Ogg的多媒體框架下,Theora提供有損的圖像層面,而通常用音樂導(dǎo)向的Vorbis編解碼器作為音效層面。針對語音設(shè)計(jì)的壓縮編解碼器Spee
54、x和無損的音效壓縮編解碼器FLAC與OggPCM也可能作為音效層面使用。OGG文件的組織形式,OGG是以頁(page)為單位將邏輯流組織鏈接起來,每個(gè)頁都有pageheader和pagedata。OGG page頁結(jié)構(gòu),每個(gè)頁之間相互獨(dú)立,都包含了各自應(yīng)有的信息,頁的大小是可變的,通常為4K8KB,最大值不能超過65307bytes(27255255*255=65307)。OGG頁頭部結(jié)構(gòu),頁標(biāo)識:ASCII字符,0 x4f O 0 x67 g 0 x67 g 0 x53 S,4個(gè)字節(jié)大小,它標(biāo)識著一個(gè)頁的開始。其作用是分離Ogg封裝格式還原媒體編碼時(shí)識別新頁的作用; 版本id:一般當(dāng)前版本默
55、認(rèn)為0,1個(gè)字節(jié);Header_type:標(biāo)識當(dāng)前的頁的類型,1個(gè)字節(jié);Granule_position:媒體編碼相關(guān)的參數(shù)信息,8個(gè)字節(jié),對于音頻流來說,它存儲著到本頁為止邏輯流在PCM輸出中采樣碼的數(shù)目,可以由它來算得時(shí)間戳。對于視頻流來說,它存儲著到本頁為止視頻幀編碼的數(shù)目。若此值為-1,那表示截止到本頁,邏輯流的packet未結(jié)束;Serial_number:當(dāng)前頁中的流的id,4個(gè)字節(jié),它是區(qū)分本頁所屬邏輯流與其他邏輯流的序號,我們可以通過這個(gè)值來劃分流。(小端)。Page_seguence:本頁在邏輯流的序號,4個(gè)字節(jié)。OGG解碼器能據(jù)此識別有無頁丟失;CRC_cbecksum:循
56、環(huán)冗余校驗(yàn)碼校驗(yàn)和,4個(gè)字節(jié),包含頁的32bit CRC校驗(yàn)和(包括頭部零CRC校驗(yàn)和頁數(shù)據(jù)校驗(yàn)),它的產(chǎn)生多項(xiàng)式為:0 x04c11db7;Num _segments:給定本頁在segment_table域中出現(xiàn)的segement個(gè)數(shù),1個(gè)字節(jié)。其最大值為255.頁最大物理尺寸為65307bytes,小于64KB;Segment_table:從字面看它就是一個(gè)表,表示著每個(gè)segment的長度,取值范圍是0255。由segment可以得到packet的值,每個(gè)packet的大小是以最后一個(gè)不等于255的segment結(jié)束的,從頁頭中的segment_table可以得到每個(gè)packet長度。2
57、.4 Qt的事件模型Qt中的事件模型十分重要。2.4.1 事件的概念應(yīng)用程序?qū)ο髮⑾到y(tǒng)消息接收為Qt事件。應(yīng)用程序可以按照不同的粒度對事件加以監(jiān)控、過濾并做出響應(yīng)。在Qt中,事件是指從QEvent繼承的對象。Qt將事件發(fā)送給每個(gè)QObject對象,這樣對象便可對事件做出響應(yīng)。也就是說,Qt的事件處理機(jī)制主要是基于QEvent類來實(shí)現(xiàn)的,QEvent類是其他事件類的基類。當(dāng)一個(gè)事件產(chǎn)生時(shí),Qt 就會構(gòu)造一個(gè)QEvent子類的實(shí)例來表述該事件,然后將該事件發(fā)送到相應(yīng)的對象上進(jìn)行處理。編程人員可以對應(yīng)用程序級別和對象級別中的事件進(jìn)行監(jiān)控和過濾。2.4.2 事件的創(chuàng)建大多數(shù)事件是由窗口系統(tǒng)生成的,它們
58、負(fù)責(zé)向應(yīng)用程序通知相關(guān)的用戶操作,例如:按鍵、鼠標(biāo)單擊或者重新調(diào)整窗口大小。也可以從編程角度來模擬這類事件。在Qt中大約有50多種事件類型,最常見的事件類型是報(bào)告鼠標(biāo)活動、按鍵、重繪請求以及窗口處理操作。編程人員也可以添加自己的活動行為,類似于內(nèi)建事件的事件類型。通常,接收方如果只知道按鍵了或者松開鼠標(biāo)按鈕了,這是不夠的。例如,它還必須知道按的是哪個(gè)鍵,松開的是哪個(gè)鼠標(biāo)按鈕以及鼠標(biāo)所在位置。每一 QEvent 子類均提供事件類型的相關(guān)附加信息,因此每個(gè)事件處理器均可利用此信息采取相應(yīng)處理。2.4.3 事件的交付Qt通過調(diào)用虛函數(shù) QObject:event()來交付事件。出于方便起見,QObj
59、ect:event()會將大多數(shù)常見的事件類型轉(zhuǎn)發(fā)給專門的處理函數(shù),例如:QWidget:mouseReleaseEvent()和QWidget:keyPressEvent()。開發(fā)人員在編寫自己的控件時(shí),或者對現(xiàn)有控件進(jìn)行定制時(shí),可以輕松地重新實(shí)現(xiàn)這些處理函數(shù)。有些事件會立即發(fā)送,而另一些事件則需要排隊(duì)等候,當(dāng)控制權(quán)返回至Qt事件循環(huán)時(shí)才會開始分發(fā)。Qt使用排隊(duì)來優(yōu)化特定類型的事件。例如,Qt會將多個(gè)paint事件壓縮成一個(gè)事件,以便達(dá)到最大速度。通常,一個(gè)對象需要查看另一對象的事件,以便可以對事件做出響應(yīng)或阻塞事件。這可以通過調(diào)用被監(jiān)控對象的 QObject:installEventFil
60、ter() 函數(shù)來實(shí)現(xiàn)。實(shí)施監(jiān)控對象的QObject:eventFilter() 虛函數(shù)會在受監(jiān)控的對象在接收事件之前被調(diào)用。另外,如果在應(yīng)用程序的 QApplication 唯一實(shí)例中安裝一個(gè)過濾器,則也可以過濾應(yīng)用程序的全部事件。系統(tǒng)先調(diào)用這類過濾器,然后再調(diào)用任何窗體特定的過濾器。開發(fā)人員甚至還可以重新實(shí)現(xiàn)事件調(diào)度程序 QApplication:notify(),對整個(gè)事件交付過程進(jìn)行全面控制。2.4.4 事件循環(huán)模型Qt通過調(diào)用虛函數(shù)QObject:event()來交付事件。處于方便起見,Qobject:event()會將大多數(shù)的事件類型轉(zhuǎn)發(fā)給專門的處理函數(shù):例如:QWidget:mo
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康育嬰方法試題及答案
- 嬰兒交往能力的逐步培養(yǎng)試題及答案
- Unit1 Can I have some sweets(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)四年級上冊
- 2024年人力資源管理時(shí)事試題及答案
- 光的干涉與衍射實(shí)驗(yàn)問題試題及答案
- 黑龍江生態(tài)工程職業(yè)學(xué)院《大學(xué)英語B(Ⅳ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江省雙城市兆麟中學(xué)2025年高三下-第二次階段性測試英語試題試卷含解析
- 黑龍江省哈爾濱市南崗區(qū)第三中學(xué)2025年高三4月質(zhì)量調(diào)研(二模)考試化學(xué)試題含解析
- 黑龍江省哈爾濱市重點(diǎn)中學(xué)2025屆高三第一次高考模擬考試數(shù)學(xué)試題含解析
- 黑龍江省綏化市青岡縣一中2024-2025學(xué)年高三沖刺診斷考試生物試題試卷含解析
- 2025年合肥二模數(shù)學(xué)試題及答案
- 2025屆武漢市二調(diào)數(shù)學(xué)質(zhì)量分析正式版【課件】
- 2024-2024年上海市高考英語試題及答案
- 最新安全生產(chǎn)管理教材電子版
- 小學(xué)六年級體育課件《原地單手肩上投籃》
- 初中數(shù)學(xué)北師大九年級上冊(2023年修訂) 反比例函數(shù)教案反比例函數(shù)-k的幾何意義
- 某公司財(cái)務(wù)盡職調(diào)查報(bào)告
- YC∕T 266-2008 煙用包裝膜
- DB36T 1589-2022水土保持無人機(jī)監(jiān)測技術(shù)規(guī)程_(高清版)
- 裝飾圖案__ppt
- 新職業(yè)英語-藝術(shù)設(shè)計(jì).unit5
評論
0/150
提交評論