国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置制造方法

      文檔序號(hào):6764028閱讀:217來(lái)源:國(guó)知局
      音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置制造方法
      【專(zhuān)利摘要】本發(fā)明提供了一種音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置。所述方法包括:按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間;讀取所述音頻文件的播放時(shí)間;根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。所述裝置包括:時(shí)間提取模塊,用于按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間;播放時(shí)間讀取模塊,用于讀取所述音頻文件的播放時(shí)間;控制模塊,用于根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。采用本發(fā)明提高了落點(diǎn)控制的準(zhǔn)確性。
      【專(zhuān)利說(shuō)明】音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及音頻處理技術(shù),特別是涉及一種音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置。
      【背景技術(shù)】
      [0002]隨著應(yīng)用軟件的日益豐富,越來(lái)越多的應(yīng)用軟件配合音頻文件為用戶提供各種功能。應(yīng)用軟件在運(yùn)行過(guò)程中,常常根據(jù)音頻文件的節(jié)奏在應(yīng)用軟件界面中布設(shè)多個(gè)落點(diǎn),進(jìn)而通過(guò)用戶對(duì)落點(diǎn)的點(diǎn)擊觸發(fā)用戶操作,向用戶提供較為豐富的應(yīng)用軟件使用環(huán)境。
      [0003]例如,在配合各種音樂(lè)所實(shí)現(xiàn)的游戲軟件中,根據(jù)音樂(lè)的節(jié)奏在每一幀游戲畫(huà)面中布設(shè)落點(diǎn),以根據(jù)用戶對(duì)落點(diǎn)所進(jìn)行的點(diǎn)擊操作實(shí)現(xiàn)游戲軟件中的用戶輸入。
      [0004]在控制音頻文件中落點(diǎn)下落的過(guò)程中,任一幀應(yīng)用軟件界面是與音頻文件中某些數(shù)據(jù)相對(duì)應(yīng)的,這些數(shù)據(jù)標(biāo)識(shí)了對(duì)應(yīng)的應(yīng)用軟件界面的節(jié)奏以及與節(jié)奏相匹配的落點(diǎn),每一個(gè)落點(diǎn)的下落是根據(jù)幀的累計(jì)使用時(shí)間控制的,即判斷幀的累計(jì)使用時(shí)間是否達(dá)到數(shù)據(jù)中記錄的下落時(shí)間,若是,則會(huì)在當(dāng)前幀的應(yīng)用軟件界面下落落點(diǎn)。然而,幀的累計(jì)使用時(shí)間是對(duì)當(dāng)前幀之前的每一幀進(jìn)行累計(jì)計(jì)算得到的,每一幀所存在的微小誤差將導(dǎo)致累計(jì)計(jì)算得到的累計(jì)使用時(shí)間和落點(diǎn)的下落存在較大的誤差,進(jìn)而使得落點(diǎn)將延遲數(shù)秒下落。

      【發(fā)明內(nèi)容】

      [0005]基于此,有必要針對(duì)音頻文件播放中落點(diǎn)延遲的問(wèn)題,提供一種能提高落點(diǎn)控制的準(zhǔn)確性的音頻文件的布點(diǎn)實(shí)現(xiàn)方法。
      [0006]此外,還有必要提供一種能提高落點(diǎn)控制的準(zhǔn)確性的音頻文件的布點(diǎn)實(shí)現(xiàn)裝置。
      [0007]一種音頻文件的布點(diǎn)實(shí)現(xiàn)方法,包括如下步驟:
      [0008]按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間;
      [0009]讀取所述音頻文件的播放時(shí)間;
      [0010]根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      [0011]一種音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,包括:
      [0012]時(shí)間提取模塊,用于按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間;
      [0013]播放時(shí)間讀取模塊,用于讀取所述音頻文件的播放時(shí)間;
      [0014]控制模塊,用于根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      [0015]上述音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置,分別獲取音頻文件中的事件觸發(fā)時(shí)間和播放時(shí)間,并根據(jù)事件觸發(fā)時(shí)間和播放時(shí)間來(lái)實(shí)現(xiàn)音頻文件所在界面中落點(diǎn)的控制,由于播放時(shí)間準(zhǔn)確地標(biāo)識(shí)了當(dāng)前音頻文件的播放位置,因此,根據(jù)播放時(shí)間和事件觸發(fā)時(shí)間落點(diǎn)的控制將避免了落點(diǎn)延遲的問(wèn)題,進(jìn)而提高落點(diǎn)控制的準(zhǔn)確性。【專(zhuān)利附圖】

      【附圖說(shuō)明】
      [0016]圖1為一個(gè)實(shí)施例中音頻文件的布點(diǎn)實(shí)現(xiàn)方法的流程圖;
      [0017]圖2為一個(gè)實(shí)施例中從音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成音頻文件中事件的布點(diǎn)信息的方法流程圖;
      [0018]圖3為一個(gè)實(shí)施例中音頻文件的布點(diǎn)實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
      [0019]圖4為另一個(gè)實(shí)施例中音頻文件的布點(diǎn)實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
      [0020]圖5為圖4中布點(diǎn)信息生成模塊的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0021]如圖1所示,在一個(gè)實(shí)施例中,一種音頻文件的布點(diǎn)實(shí)現(xiàn)方法,包括如下步驟:
      [0022]步驟S110,按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      [0023]本實(shí)施例中,布點(diǎn)信息中記錄了音頻文件中每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間,每一事件是與音頻文件中的音符對(duì)應(yīng)的,事件觸發(fā)時(shí)間將標(biāo)識(shí)了某一音符的起始時(shí)間。
      [0024]音頻文件播放時(shí),將在音頻文件所對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。具體的,布點(diǎn)信息中,按照時(shí)間的早晚順序?qū)γ恳皇录鶎?duì)應(yīng)的事件觸發(fā)時(shí)間進(jìn)行排序,進(jìn)而從排序的事件觸發(fā)時(shí)間中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。在優(yōu)選的實(shí)施例中,該預(yù)設(shè)數(shù)量是依據(jù)音頻文件中的音軌數(shù)量確定的。
      [0025]在一個(gè)實(shí)施例中,上述步驟SllO的具體過(guò)程為:在當(dāng)前播放音頻文件的幀循環(huán)中逐幀按照時(shí)間的早晚順序從布點(diǎn)信息中提取當(dāng)前幀所對(duì)應(yīng)的預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      [0026]本實(shí)施例中,音頻文件的播放過(guò)程中,音頻文件所在界面也是逐幀循環(huán)播放的。在音頻文件的幀循環(huán)中從按照時(shí)間的早晚順序進(jìn)行排序所得到的事件觸發(fā)時(shí)間中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間,這些提取的事件觸發(fā)時(shí)間將是與當(dāng)前幀相對(duì)應(yīng)的。
      [0027]在音頻文件的幀循環(huán)中,音頻文件所在界面逐幀進(jìn)行變換,每一幀的界面均配合了相應(yīng)的音符,并且由于音符是由若干個(gè)音軌分別對(duì)應(yīng)的事件形成的,因此,每一幀的界面是與若干個(gè)音軌分別對(duì)應(yīng)的事件相對(duì)應(yīng)的,進(jìn)而事件觸發(fā)時(shí)間也應(yīng)當(dāng)是與某一幀的界面相對(duì)應(yīng)即可實(shí)現(xiàn)音頻文件中的節(jié)奏與音頻文件所在界面的變換相符。
      [0028]步驟S130,讀取音頻文件的播放時(shí)間。
      [0029]本實(shí)施例中,播放時(shí)間為音頻文件的播放過(guò)程中所播放到的時(shí)間位置,用于表征音頻文件的已播放時(shí)長(zhǎng)。
      [0030]步驟S150,根據(jù)播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      [0031]本實(shí)施例中,落點(diǎn)是根據(jù)事件觸發(fā)時(shí)間顯示于音頻文件所在界面的操作點(diǎn),用戶落點(diǎn)上觸發(fā)的操作事件將使得音頻文件所在界面發(fā)生一定的變換。例如,在游戲軟件中,根據(jù)事件觸發(fā)時(shí)間和游戲軟件所加載的音頻文件的播放時(shí)間將會(huì)在游戲界面中顯示若干個(gè)落點(diǎn),用戶通過(guò)點(diǎn)擊某一落點(diǎn)來(lái)觸發(fā)音頻文件中相應(yīng)音符的播放,進(jìn)而實(shí)現(xiàn)用戶彈奏的效果O
      [0032]通過(guò)播放時(shí)間控制音頻文件所在界面中的落點(diǎn),由于播放時(shí)間是音頻文件的播放過(guò)程中當(dāng)前播放到的時(shí)間位置,是直接讀取到的,未經(jīng)過(guò)任何時(shí)間的計(jì)算,因此不存在誤差,而事件觸發(fā)時(shí)間是與音頻文件中的事件相對(duì)應(yīng)的,因此,播放時(shí)間和事件觸發(fā)時(shí)間這兩個(gè)參數(shù)都不存在誤差,保證了音頻文件所在界面中落點(diǎn)控制的準(zhǔn)確性。
      [0033]在一個(gè)實(shí)施例中,上述步驟S150的具體過(guò)程為:
      [0034]將事件觸發(fā)時(shí)間和播放時(shí)間進(jìn)行比對(duì),判斷事件觸發(fā)時(shí)間是否大于播放時(shí)間,若是,則在音頻文件所在界面中觸發(fā)落點(diǎn)的顯示控制,若否,則結(jié)束。
      [0035]本實(shí)施例中,若判斷到事件觸發(fā)時(shí)間大于播放時(shí)間,則說(shuō)明在當(dāng)前幀中對(duì)相應(yīng)落點(diǎn)觸發(fā)顯示控制不會(huì)出現(xiàn)時(shí)間上的延遲,因此,可開(kāi)始在音頻文件所在界面中觸發(fā)該落點(diǎn)的顯示控制,例如,在游戲界面中,落點(diǎn)是以出現(xiàn)并下落的動(dòng)畫(huà)形式進(jìn)行顯示的,此時(shí),在當(dāng)前幀中判斷到事件觸發(fā)時(shí)間大于播放時(shí)間時(shí),將在游戲界面中出現(xiàn)該落點(diǎn),并播放下落的動(dòng)畫(huà)效果。
      [0036]若判斷到事件觸發(fā)時(shí)間小于播放時(shí)間時(shí),說(shuō)明該事件觸發(fā)時(shí)間所對(duì)應(yīng)的事件以及落點(diǎn)已經(jīng)跳過(guò)或者錯(cuò)過(guò),將不進(jìn)行任何處理,不會(huì)運(yùn)行當(dāng)前幀所對(duì)應(yīng)的事件以及對(duì)相應(yīng)的落點(diǎn)進(jìn)行控制,以避免發(fā)出與音頻文件所在界面不匹配的音符,此時(shí),將進(jìn)入下一幀循環(huán)中,繼續(xù)讀取播放時(shí)間,并提取事件觸發(fā)時(shí)間,以實(shí)現(xiàn)下一幀循環(huán)中的落點(diǎn)控制。
      [0037]在另一個(gè)實(shí)施例中,上述步驟SllO之前還包括:從音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成音頻文件中事件的布點(diǎn)信息。
      [0038]本實(shí)施例中,音頻文件優(yōu)選為Mid (Musical Instrument Digital Interface,樂(lè)器數(shù)字接口)文件格式,音頻文件包括了標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),其中,標(biāo)頭數(shù)據(jù)中記錄了音頻文件的格式以及各種參數(shù),例如BPM (Beats Per Minute,節(jié)拍/分鐘)這一參數(shù)所對(duì)應(yīng)的數(shù)值,以用于表征節(jié)奏速度;音軌數(shù)據(jù)中記錄了用于實(shí)現(xiàn)音符播放的事件應(yīng)用的樂(lè)器種類(lèi)、音調(diào)、伴奏以及該事件的時(shí)間片信息等信息,通過(guò)將音軌數(shù)據(jù)輸入合成器接口即可實(shí)現(xiàn)某一音符的播放。
      [0039]具體的,根據(jù)標(biāo)頭數(shù)據(jù)中記錄的參數(shù)以及音軌數(shù)據(jù)中每一事件的時(shí)間片信息進(jìn)行運(yùn)算得到音頻文件中每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間,進(jìn)而通過(guò)每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間生成布點(diǎn)信息。
      [0040]進(jìn)一步的,音頻文件中事件的布點(diǎn)信息除了記錄了每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間之外,還記錄了該事件的時(shí)長(zhǎng)。該事件的時(shí)長(zhǎng)用于控制事件所對(duì)應(yīng)的音符播放時(shí)長(zhǎng)以及相應(yīng)落點(diǎn)在音頻文件所在界面的顯示時(shí)長(zhǎng)。從音軌數(shù)據(jù)中可以獲知事件終止時(shí)間,進(jìn)而根據(jù)事件觸發(fā)時(shí)間和事件終止時(shí)間即可得到該事件的時(shí)長(zhǎng)。
      [0041]如圖2所示,在一個(gè)實(shí)施例中,上述從音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成音頻文件中事件的布點(diǎn)信息的具體過(guò)程為:
      [0042]步驟S201,從音頻文件中讀取記錄的標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)。
      [0043]步驟S203,獲取音軌數(shù)據(jù)中事件的時(shí)間片信息,根據(jù)標(biāo)頭數(shù)據(jù)和事件的時(shí)間片信息計(jì)算得到事件對(duì)應(yīng)的事件觸發(fā)時(shí)間。
      [0044]本實(shí)施例中,時(shí)間片信息為音頻文件中最小時(shí)間單位(tick)的次數(shù),用于在某一時(shí)間點(diǎn)控制相應(yīng)事件的執(zhí)行,即經(jīng)歷了一定次數(shù)個(gè)最小時(shí)間單位之后開(kāi)始執(zhí)行相應(yīng)事件。
      [0045]分別獲取音軌數(shù)據(jù)中事件的時(shí)間片信息和標(biāo)頭數(shù)據(jù)中記錄的參數(shù)進(jìn)行計(jì)算,通過(guò)標(biāo)頭數(shù)據(jù)中的BPM等參數(shù)計(jì)算得到該音頻文件的最小時(shí)間單位,進(jìn)而根據(jù)最小時(shí)間單位和時(shí)間片信息計(jì)算得到事件的觸發(fā)時(shí)間。
      [0046]步驟S205,通過(guò)事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息。[0047]本實(shí)施例中,音頻文件中每一事件的事件觸發(fā)時(shí)間形成了布點(diǎn)信息,進(jìn)而通過(guò)布點(diǎn)信息在音頻文件的播放過(guò)程中對(duì)落點(diǎn)進(jìn)行控制。
      [0048]在一個(gè)實(shí)施例中,上述通過(guò)事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息的具體過(guò)程為:根據(jù)事件對(duì)應(yīng)的音軌將事件觸發(fā)時(shí)間以二進(jìn)制的形式置于對(duì)應(yīng)的音軌布點(diǎn)集合中,該音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息。
      [0049]本實(shí)施例中,以二進(jìn)制的形式對(duì)得到的事件觸發(fā)時(shí)間進(jìn)行存儲(chǔ),以最大限度地節(jié)省存儲(chǔ)空間,此時(shí),布點(diǎn)信息是以二進(jìn)制流的格式存在的。具體的,由于音頻文件中設(shè)置了若干個(gè)音軌,因此將二進(jìn)制形式的事件觸發(fā)時(shí)間放置于所在音軌對(duì)應(yīng)的音軌布點(diǎn)集合中,并由若干個(gè)音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息,實(shí)現(xiàn)了布點(diǎn)信息中的有序存儲(chǔ)和封裝。
      [0050]下面結(jié)合一個(gè)具體的實(shí)施例來(lái)詳細(xì)闡述上述音頻文件的布點(diǎn)實(shí)現(xiàn)方法。該實(shí)施例中,音頻文件所在界面為音樂(lè)游戲界面,音頻文件為音樂(lè)游戲運(yùn)行過(guò)程中提供音樂(lè)。在用戶
      運(yùn)行音樂(lè)游戲的過(guò)程中將按照時(shí)間的早晚順序從布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間,并讀取音頻文件的播放時(shí)間,進(jìn)而根據(jù)播放時(shí)間和事件觸發(fā)時(shí)間來(lái)控制音樂(lè)游戲顯示相應(yīng)的落點(diǎn),進(jìn)而根據(jù)用戶對(duì)落點(diǎn)的點(diǎn)擊發(fā)出相應(yīng)的首符。
      [0051]如圖3所示,在一個(gè)實(shí)施例中,一種音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,包括時(shí)間提取模塊110、播放時(shí)間讀取模塊130以及控制模塊150。
      [0052]時(shí)間提取模塊110,用于按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      [0053]本實(shí)施例中,布點(diǎn)信息中記錄了音頻文件中每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間,每一事件是與音頻文件中的音符對(duì)應(yīng)的,事件觸發(fā)時(shí)間將標(biāo)識(shí)了某一音符的起始時(shí)間。
      [0054]音頻文件播放時(shí),時(shí)間提取模塊110將在音頻文件所對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。具體的,布點(diǎn)信息中,按照時(shí)間的早晚順序?qū)γ恳皇录鶎?duì)應(yīng)的事件觸發(fā)時(shí)間進(jìn)行排序,時(shí)間提取模塊110從排序的事件觸發(fā)時(shí)間中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。在優(yōu)選的實(shí)施例中,該預(yù)設(shè)數(shù)量是依據(jù)音頻文件中的音軌數(shù)量確定的。
      [0055]在一個(gè)實(shí)施例中,上述時(shí)間提取模塊110還用于在當(dāng)前播放音頻文件的幀循環(huán)中逐幀按照時(shí)間的早晚順序從布點(diǎn)信息中提取當(dāng)前幀所對(duì)應(yīng)的預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      [0056]本實(shí)施例中,音頻文件的播放過(guò)程中,音頻文件所在界面也是逐幀循環(huán)播放的。時(shí)間提取模塊110在音頻文件的幀循環(huán)中從按照時(shí)間的早晚順序進(jìn)行排序所得到的事件觸發(fā)時(shí)間中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間,這些提取的事件觸發(fā)時(shí)間將是與當(dāng)前幀相對(duì)應(yīng)的。
      [0057]在音頻文件的幀循環(huán)中,音頻文件所在界面逐幀進(jìn)行變換,每一幀的界面均配合了相應(yīng)的音符,并且由于音符是由若干個(gè)音軌分別對(duì)應(yīng)的事件形成的,因此,每一幀的界面是與若干個(gè)音軌分別對(duì)應(yīng)的事件相對(duì)應(yīng)的,進(jìn)而事件觸發(fā)時(shí)間也應(yīng)當(dāng)是與某一幀的界面相對(duì)應(yīng)即可實(shí)現(xiàn)音頻文件中的節(jié)奏與音頻文件所在界面的變換相符。
      [0058]播放時(shí)間讀取模塊130,用于讀取音頻文件的播放時(shí)間。
      [0059]本實(shí)施例中,播放時(shí)間為音頻文件的播放過(guò)程中所播放到的時(shí)間位置,用于表征音頻文件的已播放時(shí)長(zhǎng)。
      [0060]控制模塊150,用于根據(jù)播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      [0061]本實(shí)施例中,落點(diǎn)是根據(jù)事件觸發(fā)時(shí)間顯示于音頻文件所在界面的操作點(diǎn),用戶落點(diǎn)上觸發(fā)的操作事件將使得音頻文件所在界面發(fā)生一定的變換。例如,在游戲軟件中,控制模塊150根據(jù)事件觸發(fā)時(shí)間和游戲軟件所加載的音頻文件的播放時(shí)間將會(huì)在游戲界面中顯示若干個(gè)落點(diǎn),用戶通過(guò)點(diǎn)擊某一落點(diǎn)來(lái)觸發(fā)音頻文件中相應(yīng)音符的播放,進(jìn)而實(shí)現(xiàn)用戶彈奏的效果。
      [0062]控制模塊150通過(guò)播放時(shí)間控制音頻文件所在界面中的落點(diǎn),由于播放時(shí)間是音頻文件的播放過(guò)程中當(dāng)前播放到的時(shí)間位置,是直接讀取到的,未經(jīng)過(guò)任何時(shí)間的計(jì)算,因此不存在誤差,而事件觸發(fā)時(shí)間是與音頻文件中的事件相對(duì)應(yīng)的,因此,播放時(shí)間和事件觸發(fā)時(shí)間這兩個(gè)參數(shù)都不存在誤差,保證了音頻文件所在界面中落點(diǎn)控制的準(zhǔn)確性。
      [0063]在一個(gè)實(shí)施例中,上述控制模塊150還用于將事件觸發(fā)時(shí)間和播放時(shí)間進(jìn)行比對(duì),判斷事件觸發(fā)時(shí)間是否大于播放時(shí)間,若是,則在音頻文件所在界面中觸發(fā)落點(diǎn)的顯示控制,若否,則停止執(zhí)行。
      [0064]本實(shí)施例中,若控制模塊150判斷到事件觸發(fā)時(shí)間大于播放時(shí)間,則說(shuō)明在當(dāng)前幀中對(duì)相應(yīng)落點(diǎn)觸發(fā)顯示控制不會(huì)出現(xiàn)時(shí)間上的延遲,因此,可開(kāi)始在音頻文件所在界面中觸發(fā)該落點(diǎn)的顯示控制,例如,在游戲界面中,落點(diǎn)是以出現(xiàn)并下落的動(dòng)畫(huà)形式進(jìn)行顯示的,此時(shí),控制模塊150在當(dāng)前幀中判斷到事件觸發(fā)時(shí)間大于播放時(shí)間時(shí),將在游戲界面中出現(xiàn)該落點(diǎn),并播放下落的動(dòng)畫(huà)效果。
      [0065]控制模塊150若判斷到事件觸發(fā)時(shí)間小于播放時(shí)間時(shí),說(shuō)明該事件觸發(fā)時(shí)間所對(duì)應(yīng)的事件以及落點(diǎn)已經(jīng)跳過(guò)或者錯(cuò)過(guò),將不進(jìn)行任何處理,不會(huì)運(yùn)行當(dāng)前幀所對(duì)應(yīng)的事件以及對(duì)相應(yīng)的落點(diǎn)進(jìn)行控制,以避免發(fā)出與音頻文件所在界面不匹配的音符,此時(shí),將進(jìn)入下一幀循環(huán)中,繼續(xù)讀取播放時(shí)間,并提取事件觸發(fā)時(shí)間,以實(shí)現(xiàn)下一幀循環(huán)中的落點(diǎn)控制。
      [0066]如圖4所示,在另一個(gè)實(shí)施例中,上述音頻文件的布點(diǎn)實(shí)現(xiàn)裝置還包括布點(diǎn)信息生成模塊210。
      [0067]布點(diǎn)信息生成模塊210,用于從音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成音頻文件中事件的布點(diǎn)信息。
      [0068]本實(shí)施例中,音頻文件優(yōu)選為Mid文件格式,音頻文件包括了標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),其中,標(biāo)頭數(shù)據(jù)中記錄了音頻文件的格式以及各種參數(shù),例如BPM (Beats Per Minute,節(jié)拍/分鐘)這一參數(shù)所對(duì)應(yīng)的數(shù)值,以用于表征節(jié)奏速度;音軌數(shù)據(jù)中記錄了用于實(shí)現(xiàn)音符播放的事件應(yīng)用的樂(lè)器種類(lèi)、音調(diào)、伴奏以及該事件的時(shí)間片信息等信息,通過(guò)將音軌數(shù)據(jù)輸入合成器接口即可實(shí)現(xiàn)某一音符的播放。
      [0069]具體的,布點(diǎn)信息生成模塊210根據(jù)標(biāo)頭數(shù)據(jù)中記錄的參數(shù)以及音軌數(shù)據(jù)中每一事件的時(shí)間片信息進(jìn)行運(yùn)算得到音頻文件中每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間,進(jìn)而通過(guò)每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間生成布點(diǎn)信息。
      [0070]進(jìn)一步的,音頻文件中事件的布點(diǎn)信息除了記錄了每一事件所對(duì)應(yīng)的事件觸發(fā)時(shí)間之外,還記錄了該事件的時(shí)長(zhǎng)。該事件的時(shí)長(zhǎng)用于控制事件所對(duì)應(yīng)的音符播放時(shí)長(zhǎng)以及相應(yīng)落點(diǎn)在音頻文件所在界面的顯示時(shí)長(zhǎng)。從音軌數(shù)據(jù)中可以獲知事件終止時(shí)間,進(jìn)而根據(jù)事件觸發(fā)時(shí)間和事件終止時(shí)間即可得到該事件的時(shí)長(zhǎng)。[0071 ] 如圖5所示,在一個(gè)實(shí)施例中,上述布點(diǎn)信息生成模塊210包括數(shù)據(jù)讀取單元211、運(yùn)算單元213和信息生成單元215。
      [0072]數(shù)據(jù)讀取單元211,用于從音頻文件中讀取記錄的標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)。
      [0073]運(yùn)算單元213,用于獲取音軌中事件的時(shí)間片信息,根據(jù)標(biāo)頭數(shù)據(jù)和事件的時(shí)間片信息計(jì)算得到事件對(duì)應(yīng)的事件觸發(fā)時(shí)間。
      [0074]本實(shí)施例中,時(shí)間片信息為音頻文件中最小時(shí)間單位(tick)的次數(shù),用于在某一時(shí)間點(diǎn)控制相應(yīng)事件的執(zhí)行,即經(jīng)歷了一定次數(shù)個(gè)最小時(shí)間單位之后開(kāi)始執(zhí)行相應(yīng)事件。
      [0075]運(yùn)算單元213分別獲取音軌數(shù)據(jù)中事件的時(shí)間片信息和標(biāo)頭數(shù)據(jù)中記錄的參數(shù)進(jìn)行計(jì)算,通過(guò)標(biāo)頭數(shù)據(jù)中的BPM等參數(shù)計(jì)算得到該音頻文件的最小時(shí)間單位,進(jìn)而根據(jù)最小時(shí)間單位和時(shí)間片彳目息計(jì)算得到事件的觸發(fā)時(shí)間。
      [0076]信息生成單元215,用于通過(guò)事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息。
      [0077]本實(shí)施例中,信息生成單元215通過(guò)音頻文件中每一事件的事件觸發(fā)時(shí)間形成布點(diǎn)信息,進(jìn)而通過(guò)布點(diǎn)信息在音頻文件的播放過(guò)程中對(duì)落點(diǎn)進(jìn)行控制。
      [0078]在一個(gè)實(shí)施例中,上述信息生成單元215還用于根據(jù)事件對(duì)應(yīng)的音軌將事件觸發(fā)時(shí)間以二進(jìn)制的形式置于對(duì)應(yīng)的音軌布點(diǎn)集合中,該音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息。
      [0079]本實(shí)施例中,信息生成單元215以二進(jìn)制的形式對(duì)得到的事件觸發(fā)時(shí)間進(jìn)行存儲(chǔ),以最大限度地節(jié)省存儲(chǔ)空間,此時(shí),布點(diǎn)信息是以二進(jìn)制流的格式存在的。具體的,由于音頻文件中設(shè)置了若干個(gè)音軌,因此信息生成單元215將二進(jìn)制形式的事件觸發(fā)時(shí)間放置于所在音軌對(duì)應(yīng)的音軌布點(diǎn)集合中,并由若干個(gè)音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息,實(shí)現(xiàn)了布點(diǎn)信息中的有序存儲(chǔ)和封裝。
      [0080]上述音頻文件的布點(diǎn)實(shí)現(xiàn)方法和裝置,分別獲取音頻文件中的事件觸發(fā)時(shí)間和播放時(shí)間,并根據(jù)事件觸發(fā)時(shí)間和播放時(shí)間來(lái)實(shí)現(xiàn)音頻文件所在界面中落點(diǎn)的控制,由于播放時(shí)間準(zhǔn)確地標(biāo)識(shí)了當(dāng)前音頻文件的播放位置,因此,根據(jù)播放時(shí)間和事件觸發(fā)時(shí)間落點(diǎn)的控制將避免了落點(diǎn)延遲的問(wèn)題,進(jìn)而提高落點(diǎn)控制的準(zhǔn)確性。
      [0081]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
      [0082]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
      【權(quán)利要求】
      1.一種音頻文件的布點(diǎn)實(shí)現(xiàn)方法,包括如下步驟: 按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間; 讀取所述音頻文件的播放時(shí)間; 根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      2.根據(jù)權(quán)利要求1所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間的步驟為: 在所述當(dāng)前播放音頻文件的幀循環(huán)中逐幀按照時(shí)間的早晚順序從所述布點(diǎn)信息中提取當(dāng)前幀所對(duì)應(yīng)的預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      3.根據(jù)權(quán)利要求1所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)的步驟為: 將所述事件觸發(fā)時(shí)間和播放時(shí)間進(jìn)行比對(duì),判斷所述事件觸發(fā)時(shí)間是否大于播放時(shí)間,若是,則在所述音頻文件所在界面中觸發(fā)所述落點(diǎn)的顯示控制。
      4.根據(jù)權(quán)利要求1所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間的步驟之前還包括: 從所述音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)所述標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成所述音頻文件中事件的布點(diǎn)信息。
      5.根據(jù)權(quán)利要求4所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述從所述音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)所述標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成所述音頻文件中事件的布點(diǎn)信息的步驟為: 從所述音頻文件中讀取記錄的標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù); 獲取音軌數(shù)據(jù)中事件的時(shí)間片信息,根據(jù)所述標(biāo)頭數(shù)據(jù)和事件的時(shí)間片信息計(jì)算得到所述事件對(duì)應(yīng)的事件觸發(fā)時(shí)間; 通過(guò)所述事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息。
      6.根據(jù)權(quán)利要求5所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述通過(guò)所述事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息的具體過(guò)程為: 根據(jù)所述事件對(duì)應(yīng)的音軌將所述事件觸發(fā)時(shí)間以二進(jìn)制的形式置于對(duì)應(yīng)的音軌布點(diǎn)集合中,所述音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息。
      7.一種音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,其特征在于,包括: 時(shí)間提取模塊,用于按照時(shí)間的早晚順序從當(dāng)前播放的音頻文件對(duì)應(yīng)的布點(diǎn)信息中提取預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間; 播放時(shí)間讀取模塊,用于讀取所述音頻文件的播放時(shí)間; 控制模塊,用于根據(jù)所述播放時(shí)間和事件觸發(fā)時(shí)間控制音頻文件所在界面中的落點(diǎn)。
      8.根據(jù)權(quán)利要求7所述的音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,其特征在于,所述時(shí)間提取模塊還用于在所述當(dāng)前播放音頻文件的幀循環(huán)中逐幀按照時(shí)間的早晚順序從所述布點(diǎn)信息中提取當(dāng)前幀所對(duì)應(yīng)的預(yù)設(shè)數(shù)量的事件觸發(fā)時(shí)間。
      9.根據(jù)權(quán)利7所述的音頻文件的布點(diǎn)實(shí)現(xiàn)方法,其特征在于,所述控制模塊還用于將所述事件觸發(fā)時(shí)間和播放時(shí)間進(jìn)行比對(duì),判斷所述事件觸發(fā)時(shí)間是否大于播放時(shí)間,若是,則在所述音頻文件所在界面中觸發(fā)落點(diǎn)的顯示控制。
      10.根據(jù)權(quán)利要求7所述的音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,其特征在于,還包括: 布點(diǎn)信息生成模塊,用于從所述音頻文件中讀取標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù),并根據(jù)所述標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù)生成音頻文件中事件的布點(diǎn)信息。
      11.根據(jù)權(quán)利要求10所述的音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,其特征在于,所述布點(diǎn)信息生成模塊包括: 數(shù)據(jù)讀取單元,用于從所述音頻文件中讀取記錄的標(biāo)頭數(shù)據(jù)和音軌數(shù)據(jù); 運(yùn)算單元,用于獲取音軌數(shù)據(jù)中事件的時(shí)間片信息,根據(jù)所述標(biāo)頭數(shù)據(jù)和事件的時(shí)間片信息計(jì)算得到所述事件對(duì)應(yīng)的事件觸發(fā)時(shí)間; 信息生成單元,用于通過(guò)所述事件觸發(fā)時(shí)間生成事件的布點(diǎn)信息。
      12.根據(jù)權(quán)利要求11所述的音頻文件的布點(diǎn)實(shí)現(xiàn)裝置,其特征在于,所述信息生成單元還用于根據(jù)所述事件對(duì)應(yīng)的音軌將所述事件觸發(fā)時(shí)間以二進(jìn)制的形式置于對(duì)應(yīng)的音軌布點(diǎn)集合中,所述音軌布點(diǎn)集合形成音頻文件中事件的布點(diǎn)信息。
      【文檔編號(hào)】G11B27/10GK103680562SQ201210321561
      【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月3日 優(yōu)先權(quán)日:2012年9月3日
      【發(fā)明者】孫煥文, 溫雨凝 申請(qǐng)人:騰訊科技(深圳)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1