新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 創客作品:自制足球游戲解說員

        創客作品:自制足球游戲解說員

        作者:EEPW編譯 時間:2015-01-13 來源:電子產品世界 收藏

          上述使用了兩個“聲音”對象。一個用于存儲文件中來自外部文件的數據;另一個用于播放實際聲音。詳細解釋工作原理的注釋不多,不過還是有必要了解幾個核心概念:

        本文引用地址:http://www.104case.com/article/268066.htm

          在音頻播放前(送到聲卡)我們借助eventlistener用wavdata填充“外向的”聲音對象,即發送到聲卡前詢問的數據,這些數據決定顯示哪個口型。

          如果希望播放聲音,我們只需告訴設備,從哪個位置開始提取已加載聲音數據的wavdata字節即可。當到達示例音頻的最后部分,我們就停止音頻播放。

          最棘手的部分是將中的標簽數據轉換成“示例數據抵消”值以及使音頻在恰當的位置啟動/停止。中的標簽位置由運行時間決定。但“樣本”數據不基于時間,這就使其與匹配出現問題。

          對于每個示例,都占用4個字節,據此可以計算出,一秒的音頻數據,若以CD品質44.1 khz記錄則應該包含44100 * 8 = 352800個字節。所以如果我們開始從文件中提取樣本數據并加載352800字節,就可以有效地播放一秒的音頻。同樣,從5秒開始回放則需要從44100 * 8 * 5 = 1764000字節處開始提取音頻樣本數據。

          為了減少文件大小(并縮減操縱文件開銷)我們在mono 樣本、以11025 hz頻率進行記錄。這就意味著每個示例中我們只占用4字節(因為沒有左/右跟蹤,針對單個、mono追蹤我們只占用4個字節為)而非8個。所以我們需要計算字節偏移量為:

          startByte= 11025 * 4 * timeInSeconds

          網址如下:http://www.nerdclub.co.uk/lipsync_demo.htm

          但任務還沒完成,例如我們仍需要從外部文件加載線索點(并非將其嵌入代碼中)。但無論怎樣我們已經大體上闡明了設計思想。一旦從外部文件完成線索點和實際mp3音頻的加載,我們就有足夠的理由說,我們這款屬于用戶可編輯類型的足球游戲有望實現!


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海伦市| 新巴尔虎右旗| 和龙市| 佛坪县| 衡山县| 卓资县| 方山县| 长岛县| 丽江市| 龙井市| 海宁市| 镇巴县| 神木县| 阿拉尔市| 普兰店市| 登封市| 神农架林区| 西安市| 蚌埠市| 潮安县| 余江县| 台安县| 鹤庆县| 重庆市| 库车县| 独山县| 北安市| 皋兰县| 潜江市| 兰州市| 应城市| 德清县| 苍梧县| 隆林| 无为县| 宣汉县| 开鲁县| 静乐县| 义乌市| 和龙市| 辽宁省|