• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當自強而不息

            用DirectX Audio和DirectShow播放聲音和音樂


            用DirectX Audio和DirectShow播放聲音和音樂(7)      摘要: MP3是一種音頻壓縮格式,它通過刪除或修改音樂中不易被人耳察覺的部分來使音樂更小,占用的存儲空間更少。在項目中使用MP3(.MP3文件)需要使用 DirectX中的DirectShow組件,在這個組件的幫助下,只需幾行短短的代碼,就能使用任意的MP3文件了(DirectShow也支持其他的媒體文件,比如WMA,AVI,MPG等)。當然要想使用更多的媒體文件,必須已經在操作系統中安裝了解碼器。

            解碼器(codec)是一個程序,用于解碼或編碼一些指定的格式(比如MP3解碼器專門解碼.MP3文件)。通常可以從發(fā)明或者創(chuàng)建這種格式的公司中獲取這種格式的解碼器。比如, MP3解碼器來自于Fraunhofer Insitute。幸運的是,MP3解碼器等幾種比較流行的解碼器已經被集成到操作系統中(比如.mp3,.avi,.mpg等),而無需另外從 internet下載這些格式的解碼器了。

            要在項目中使用DirectShow,需要包含dshow.h頭文件,并且在鏈接庫中加入strmiids.lib。  
             
            用DirectX Audio和DirectShow播放聲音和音樂(6)      摘要: DirectMusic加載器在使用固有文件或者MIDI文件的時候會自動加載默認的音色庫。樂器總是被一組一組地使用,很多組樂器音色的集合被稱之為 DLS音色庫(可下載的音樂)。每組樂器使用三個值編號,它們是:最高有效位(most-significant byte,MSB),最低有效位(least-significant byte,LSB)和組編號。

            通常播放MIDI文件的樂器組是標準化的,也就是說編號為1的樂器總是鋼琴,如果想使用新的鋼琴作為樂器,可以從DLS集合中加載。 DirectMusic包含了標準的樂器集合,通常稱之為GM/GS集合(GM = General MIDI,GS = General Synthesizer),這個集合由日本羅蘭(Roland)公司提出,稱為MIDI合成器標準。
              
             
            用DirectX Audio和DirectShow播放聲音和音樂(5)      摘要: 在DirectAudio中,DirectSound負責數字音頻方面的處理,而DirectMusic則負責Midi文件(Musical Instrument Data Interface,數字音樂格式,.mid作為文件擴展名),DirectMusic固有音樂文件(.sgt文件)和數字錄音設備錄制的波形格式文件(.wav文件)等文件的播放操作。

            能體現DirectMusic的強大之處是DirectMusic固有文件格式,一首用DirectMusic固有文件格式制作的音樂包括數個小音樂格式,這些樣式還能用不同的樂器組合一個接一個地播放。隨機的樣式和樂器的選取創(chuàng)造出了隨時都在改變的音樂,再加上節(jié)拍變化,就形成了一個魅力無窮的音樂系統。DirectMusic的另一個特性是可以使用“基調”,就是在正在播放的音樂片段上疊加一段其他音樂,新加入的音樂可以很平滑的融入到原有的音樂中。這在很多時候都有用,比如一個玩家完成了一個目標,可以馬上播放一段“獲得榮譽”的音樂提示他。 
             
            用DirectX Audio和DirectShow播放聲音和音樂(4)      摘要: “通告”是一種觸發(fā)機制,當緩存中播放位置達到某個固定的位置時,就會向程序發(fā)出通知。有了通告,就可以知道播放什么時候結束,這種機制在比較長的聲音中特別有效。通告使用一個叫做IDirectSoundNotify8的對象,這個程序的作用就是在音頻緩存中標記一個位置,然后觸發(fā)事件通知應用程序,而應用程序可以通過消息循環(huán)或者單獨的線程進行處理。

            標記的位置可以是一個緩存中的偏移值,也可以是由宏指定的停止標記,這個表示停止的宏是DSBPN_OFFSETSTOP。并不是任何偏移值都可以用來作為通告發(fā)生的位置,這個值必須和音頻的數據塊對齊,并且通告的偏移必須按照從小到大的順序排列。偏移值是不能夠共享的,如果使用 DSBPN_OFFSETSTOP宏,它必須被放在最后。舉例來說,對于一個塊大小為2的音頻(單聲道、16位),嘗試對偏移為4和5的位置設通告會導致失敗,因為偏移量位置4和5都在同一個數據塊中。 
             
            用DirectX Audio和DirectShow播放聲音和音樂(3)      摘要: 所謂聲道平衡就是調節(jié)左右聲道的大小, DirectSound定義了兩個宏幫助把聲道平衡調節(jié)到最左邊和最右邊,使用DSBPAN_LEFT將聲道調整到最左邊,使用DSBPAN_RIGHT 將聲道調整到最右邊。

            通過調用IDirectSoundBuffer8::SetPan函數可以調節(jié)聲道平衡。   
             
            用DirectX Audio和DirectShow播放聲音和音樂(2)      摘要: 讓緩存在程序啟動的時候開始播放可以節(jié)省不少處理器時間。因為內存資源是有限的,特別是在硬件設備中,而你使用的數據緩存可能需要任意大小,因此主音頻緩沖區(qū)和輔助緩沖區(qū)使用環(huán)形緩存。因為數據緩沖是一個一維數組,所以可以讓這個緩沖區(qū)頭尾相接。這是一個十分強大的技術,利用這個技術我們可以節(jié)省大量的內存。

            聲音在進行混音處理后,被送入環(huán)形主音頻緩存。一旦播放位置到達主音頻緩存的終點,聲音又從頭開始播放,這樣聲音就被無間隙地連續(xù)播放。如果想要使用緩存的這種循環(huán)特性,需要指定啟用循環(huán)播放的特性,若不然當播放到緩沖區(qū)終點時,播放就停止了。

            為了播放緩存中的音頻數據(在開啟循環(huán)選項的情況下播放),需要調用Play函數。  
             
            用DirectX Audio和DirectShow播放聲音和音樂(1)      摘要: 音樂就是一系列的音符,這些音符在不同的時間用不同的幅度被播放或者停止。有非常多的指令被用來播放音樂,但是這些指令的操作基本相同,都在使用各種各樣不同的音符。在計算機上進行作曲,實際上是存儲了很多組音樂,回放時由音頻硬件將這些音符播放出來。

            Midi格式(文件擴展名是.MID)是存儲數字音樂的標準格式。

            DirectMusic 音樂片段(music segments)使用.SGT文件擴展名,其他的相關文件包括樂隊文件(band file .BND),這種文件里面包含樂器信息;弦映射表文件(chordmaps file .CDM)包含在回放時修改音樂的和弦指令;樣式文件(styles file .STY)包含回放樣式信息;模板文件(templates file .TPL)包含創(chuàng)造音樂片段的模板。  


            posted on 2007-09-24 23:38 lovedday 閱讀(3795) 評論(0)  編輯 收藏 引用 所屬分類: ■ DirectX 9 Program

            公告

            導航

            統計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關鏈接

            搜索

            最新評論

            av午夜福利一片免费看久久| 伊人久久大香线蕉av一区| 美女久久久久久| 久久妇女高潮几次MBA| 99久久夜色精品国产网站| 久久被窝电影亚洲爽爽爽| 亚洲欧洲精品成人久久曰影片 | 国内精品久久久久久不卡影院| 亚洲午夜福利精品久久| 久久综合亚洲欧美成人| 精品国产乱码久久久久软件| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 精品国产99久久久久久麻豆| 久久精品中文闷骚内射| 99精品久久久久久久婷婷| 亚洲国产成人久久综合一| 亚洲伊人久久成综合人影院 | 精品久久久久国产免费| 少妇内射兰兰久久| 日本五月天婷久久网站| 久久青青草原精品影院| 国产 亚洲 欧美 另类 久久| 中文字幕热久久久久久久| 久久精品女人天堂AV麻| 久久久久婷婷| 国产免费福利体检区久久| 色综合久久久久综合体桃花网| 久久亚洲欧洲国产综合| 国产亚洲成人久久| 国产伊人久久| 国内精品久久久久影院网站 | 国产91久久综合| 国内精品久久久久久野外| 久久久久亚洲AV无码专区体验| 国产精品久久久久a影院| 久久久久亚洲AV无码去区首| 99久久人人爽亚洲精品美女| 狠狠色丁香婷综合久久| 青青国产成人久久91网| 一本大道久久a久久精品综合| 久久精品国产亚洲网站|