本公開涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種音頻混音方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,音頻混音技術(shù)的應(yīng)用也越來(lái)越廣泛。目前,一般的音頻混音方式是先將多路音頻交給解碼器,通過(guò)解碼器解碼獲得各自原始PCM音頻數(shù)據(jù),將獲得的原始PCM音頻數(shù)據(jù)疊加混合得到混音后的數(shù)據(jù),然后將混音的結(jié)果交給外設(shè)渲染或者直接寫入到音頻文件。然而,在相關(guān)技術(shù)中,只能對(duì)相同格式的音頻(例如mp3格式)進(jìn)行音頻混音,并且混音處理的速度不夠理想。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本公開提出了一種音頻混音方法及裝置,實(shí)現(xiàn)對(duì)不同格式的音頻進(jìn)行快速混音。
根據(jù)本公開的一方面,提供了一種音頻混音方法,包括:
對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,包括:
在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,對(duì)多個(gè)音頻文件分別進(jìn)行解碼,包括:
調(diào)用與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,包括:
在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,從與所述第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器獲取解碼后的音頻數(shù)據(jù)并存儲(chǔ)到所述緩存空間中,
如果所述相對(duì)應(yīng)的音頻解碼器中已不存在解碼后的音頻數(shù)據(jù),則獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度通過(guò)以下公式獲得:
第一數(shù)據(jù)長(zhǎng)度=音頻播放設(shè)備的音頻采樣率×音頻播放設(shè)備的聲道數(shù)量×音頻播放設(shè)備支持的音頻樣本長(zhǎng)度/幀率。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述解碼后的多個(gè)音頻數(shù)據(jù)為PCM音頻數(shù)據(jù)。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
獲取所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳。
對(duì)于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳通過(guò)以下公式獲得:
所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳=已混音的音頻數(shù)據(jù)的長(zhǎng)度/(第一數(shù)據(jù)長(zhǎng)度×幀率)。
根據(jù)本公開的另一方面,提供了一種音頻混音裝置,包括:
解碼模塊,用于對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
存儲(chǔ)模塊,用于將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
混音模塊,用于從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述混音模塊包括:
第一混音子模塊,用于在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述解碼模塊包括:
解碼調(diào)用子模塊,用于調(diào)用與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述混音模塊包括:
數(shù)據(jù)獲取子模塊,用于在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,從與所述第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器獲取解碼后的音頻數(shù)據(jù)并存儲(chǔ)到所述緩存空間中;
第二混音子模塊,用于如果所述相對(duì)應(yīng)的音頻解碼器中已不存在解碼后的音頻數(shù)據(jù),則獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度通過(guò)以下公式獲得:
第一數(shù)據(jù)長(zhǎng)度=音頻播放設(shè)備的音頻采樣率×音頻播放設(shè)備的聲道數(shù)量×音頻播放設(shè)備支持的音頻樣本長(zhǎng)度/幀率。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述解碼后的多個(gè)音頻數(shù)據(jù)為PCM音頻數(shù)據(jù)。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
時(shí)間戳獲取模塊,用于獲取所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳。
對(duì)于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳通過(guò)以下公式獲得:
所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳=已混音的音頻數(shù)據(jù)的長(zhǎng)度/(第一數(shù)據(jù)長(zhǎng)度×幀率)。
根據(jù)本公開的另一方面,提供了一種音頻混音裝置,包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為:
對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
根據(jù)本公開的另一方面,提供了一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由終端和/或服務(wù)器的處理器執(zhí)行時(shí),使得終端和/或服務(wù)器能夠執(zhí)行一種音頻混音方法,所述方法包括:
對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
根據(jù)本公開實(shí)施例的音頻混音方法及裝置,能夠通過(guò)對(duì)多個(gè)音頻文件分別進(jìn)行解碼并存儲(chǔ)到緩存空間,并且從每個(gè)音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理以獲得已混音的音頻數(shù)據(jù),能夠?qū)崿F(xiàn)不同格式的音頻文件的快速混音。
根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明,本公開的其它特征及方面將變得清楚。
附圖說(shuō)明
包含在說(shuō)明書中并且構(gòu)成說(shuō)明書的一部分的附圖與說(shuō)明書一起示出了本公開的示例性實(shí)施例、特征和方面,并且用于解釋本公開的原理。
圖1是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。
圖2是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。
圖3是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。
圖4是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的步驟S13的流程圖。
圖5是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。
圖6是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。
圖7是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。
圖8是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。
具體實(shí)施方式
以下將參考附圖詳細(xì)說(shuō)明本公開的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說(shuō)明性”。這里作為“示例性”所說(shuō)明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
另外,為了更好的說(shuō)明本公開,在下文的具體實(shí)施方式中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒有某些具體細(xì)節(jié),本公開同樣可以實(shí)施。在一些實(shí)例中,對(duì)于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本公開的主旨。
實(shí)施例1
圖1是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。該方法可應(yīng)用于終端設(shè)備(例如智能手機(jī)、電腦等)或服務(wù)器中。如圖1所示,根據(jù)本公開實(shí)施例的音頻混音方法包括:
步驟S11,對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
步驟S12,將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
步驟S13,從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
根據(jù)本公開的實(shí)施例能夠通過(guò)對(duì)多個(gè)音頻文件分別進(jìn)行解碼并存儲(chǔ)到緩存空間,并且從每個(gè)音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理以獲得已混音的音頻數(shù)據(jù),能夠降低音頻數(shù)據(jù)混音過(guò)程中的寫開銷,實(shí)現(xiàn)不同格式的音頻文件的快速混音。
舉例來(lái)說(shuō),對(duì)于不同格式的多個(gè)音頻文件,例如mp3、aac、3gpp等格式的音頻文件,可以分別調(diào)用相應(yīng)的音頻解碼器對(duì)音頻文件進(jìn)行解碼,從而獲得多個(gè)音頻數(shù)據(jù)。并且,可以對(duì)多個(gè)音頻數(shù)據(jù)中的每一個(gè)分別進(jìn)行預(yù)處理,例如對(duì)不同路音頻的參數(shù)(比如音量等)進(jìn)行調(diào)節(jié),經(jīng)預(yù)處理后,可以獲得解碼后的多個(gè)音頻數(shù)據(jù)。本公開對(duì)音頻文件以及相應(yīng)的音頻解碼器的具體類型不做限制,對(duì)音頻數(shù)據(jù)的預(yù)處理的具體方式不做限制。
在一種可能的實(shí)現(xiàn)方式中,解碼后的多個(gè)音頻數(shù)據(jù)可以為PCM音頻數(shù)據(jù)。在終端設(shè)備或服務(wù)器中,可以為多個(gè)音頻數(shù)據(jù)的每一個(gè)創(chuàng)建緩存空間,將解碼后的多個(gè)音頻數(shù)據(jù)分別存儲(chǔ)到緩存空間中。緩存空間可以存放一定長(zhǎng)度的音頻數(shù)據(jù)(例如PCM音頻數(shù)據(jù)),緩存空間的長(zhǎng)度可以根據(jù)實(shí)際環(huán)境和不同的設(shè)備來(lái)定制。
在一種可能的實(shí)現(xiàn)方式中,可以從緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理。其中,該第一數(shù)據(jù)長(zhǎng)度可以為音頻幀的長(zhǎng)度,可以根據(jù)實(shí)際情況采用系統(tǒng)默認(rèn)或由用戶自行設(shè)定,例如,該第一數(shù)據(jù)長(zhǎng)度可以設(shè)定為4096Byte、8192Byte等。由于不同格式的音頻文件和不同類型的解碼器每次解碼出來(lái)的PCM數(shù)據(jù)長(zhǎng)度不同,因此,經(jīng)解碼后,可能獲得不同長(zhǎng)度的多個(gè)音頻數(shù)據(jù)(PCM數(shù)據(jù))。針對(duì)緩存空間中的多個(gè)音頻數(shù)據(jù),可以以一個(gè)音頻幀為單位進(jìn)行長(zhǎng)度對(duì)齊,例如從每個(gè)音頻數(shù)據(jù)的第一個(gè)音頻幀開始進(jìn)行對(duì)齊??梢詮拿總€(gè)已對(duì)齊的音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)(一個(gè)音頻幀)進(jìn)行混音疊加,獲得已混音的音頻數(shù)據(jù)??梢暂喠鞑樵兲幚砻恳宦芬纛l,從每一路音頻的緩存空間中取出一音頻幀的音頻數(shù)據(jù)進(jìn)行疊加混音操作,如果某一路音頻的剩余數(shù)據(jù)已經(jīng)不足一幀,則可以全部取出進(jìn)行疊加混音。
在一種可能的實(shí)現(xiàn)方式中,第一數(shù)據(jù)長(zhǎng)度可以通過(guò)以下公式獲得:
第一數(shù)據(jù)長(zhǎng)度=音頻播放設(shè)備的音頻采樣率×音頻播放設(shè)備的聲道數(shù)量×音頻播放設(shè)備支持的音頻樣本長(zhǎng)度/幀率。
其中,常見的音頻播放設(shè)備(例如終端設(shè)備)的音頻采樣率有22050Hz、32000Hz、44100Hz、48000Hz等。音頻播放設(shè)備的聲道數(shù)量普遍為雙聲道,音頻播放設(shè)備支持的音頻樣本長(zhǎng)度一般為8bit/16bit/32bit的PCM數(shù)據(jù),幀率(即音頻播放設(shè)備單位時(shí)間播放音頻幀的數(shù)量)可以自定義。例如,對(duì)于終端設(shè)備來(lái)說(shuō),上面公式中采用的參數(shù),音頻采樣率可以采用44100Hz,這是跨平臺(tái)移植性較好的采樣率,聲道數(shù)量可以為雙聲道,音頻樣本長(zhǎng)度可以為16bit,根據(jù)這些常用的數(shù)據(jù)選擇,例如可以定義音頻幀的幀率為20,則可得出一個(gè)推薦的第一數(shù)據(jù)長(zhǎng)度(音頻幀長(zhǎng)度)為8820Byte。相應(yīng)地,緩存空間中可以存儲(chǔ)多個(gè)音頻幀的音頻數(shù)據(jù)(PCM音頻數(shù)據(jù)),例如緩存空間的長(zhǎng)度可以存放20音頻幀的PCM音頻數(shù)據(jù)。
通過(guò)這種方式,可以降低音頻數(shù)據(jù)混音過(guò)程中的寫開銷,實(shí)現(xiàn)不同格式的音頻文件的快速混音。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:獲取所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳。
舉例來(lái)說(shuō),可以對(duì)已混音的音頻數(shù)據(jù)進(jìn)行混音后處理,例如去爆音等,并且可以計(jì)算已混音的音頻數(shù)據(jù)的參數(shù),例如計(jì)算時(shí)間戳,從而保證已混音的音頻數(shù)據(jù)能夠正常播放和導(dǎo)出。由于在步驟11-步驟13中對(duì)多個(gè)音頻文件進(jìn)行解碼、存儲(chǔ)及混音的過(guò)程中對(duì)音頻數(shù)據(jù)進(jìn)行了重排對(duì)齊,因此在某些情況下需要計(jì)算第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)(一個(gè)音頻幀)的時(shí)間戳。本公開對(duì)混音后處理以及已混音的音頻數(shù)據(jù)的參數(shù)的具體類型不作限制。
在一種可能的實(shí)現(xiàn)方式中,第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳可以通過(guò)以下公式獲得:
第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳=已混音的音頻數(shù)據(jù)的長(zhǎng)度/(第一數(shù)據(jù)長(zhǎng)度×幀率)
其中,第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳可以表示當(dāng)前正在處理的音頻幀的時(shí)間戳,已混音的音頻數(shù)據(jù)的長(zhǎng)度可以表示在當(dāng)前正在處理的音頻幀之前已進(jìn)行混音處理的音頻數(shù)據(jù)的總長(zhǎng)度,幀率可以為第一數(shù)據(jù)長(zhǎng)度的公式中的幀率。經(jīng)計(jì)算后,可以將相應(yīng)的時(shí)間戳加入到當(dāng)前正在處理的音頻幀中。這樣,可以對(duì)多個(gè)音頻幀中的每一個(gè)計(jì)算時(shí)間戳,使得所有已混音的音頻數(shù)據(jù)中都具有相對(duì)應(yīng)的時(shí)間戳,方便進(jìn)行后續(xù)的處理(例如播放或生成文件)。
在一種可能的實(shí)現(xiàn)方式中,可以渲染播放所述已混音的音頻數(shù)據(jù),還可以導(dǎo)出所述已混音的音頻數(shù)據(jù),生成已混音的音頻文件,以供用戶存儲(chǔ)或播放。
通過(guò)這種方式,可以計(jì)算并加入已混音的音頻數(shù)據(jù)的參數(shù),以便于后續(xù)的處理,提高了已混音的音頻數(shù)據(jù)的實(shí)用性。
圖2是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。如圖2所示,在一種可能的實(shí)現(xiàn)方式中,步驟S13包括:
步驟S131,在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
舉例來(lái)說(shuō),在緩存空間中存在空閑的情況下,可以不斷對(duì)多個(gè)音頻文件分別進(jìn)行解碼及預(yù)處理,獲得解碼后的多個(gè)音頻數(shù)據(jù)并存儲(chǔ)到緩存空間中。針對(duì)緩存空間中的多個(gè)音頻數(shù)據(jù),可以輪流查詢處理每個(gè)音頻數(shù)據(jù),從每個(gè)音頻數(shù)據(jù)中取出一音頻幀的音頻數(shù)據(jù)(第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù))進(jìn)行混音處理。如果一個(gè)或幾個(gè)的音頻數(shù)據(jù)(第一音頻數(shù)據(jù))的剩余數(shù)據(jù)已經(jīng)不足一音頻幀,則可以認(rèn)為對(duì)應(yīng)于第一音頻數(shù)據(jù)的音頻文件已經(jīng)全部解碼。此時(shí),可以獲取第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的每一個(gè)音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)(一音頻幀),進(jìn)行混音處理。其中,第一音頻數(shù)據(jù)可以是緩存空間中的多個(gè)音頻數(shù)據(jù)中的任意一個(gè)或幾個(gè)音頻數(shù)據(jù)。
通過(guò)這種方式,可以在第一音頻數(shù)據(jù)的剩余數(shù)據(jù)不足一音頻幀時(shí)將該剩余數(shù)據(jù)與其他音頻數(shù)據(jù)進(jìn)行混音處理,提高了混音處理的效率和靈活性。
圖3是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的流程圖。如圖3所示,在一種可能的實(shí)現(xiàn)方式中,步驟S11包括:
步驟S111,調(diào)用與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼。
舉例來(lái)說(shuō),對(duì)于不同類型的音頻文件,需要與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器才能進(jìn)行解碼。這樣,在對(duì)多個(gè)音頻文件分別進(jìn)行解碼時(shí),可以從系統(tǒng)中調(diào)用與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼。本公開對(duì)音頻文件以及相應(yīng)的音頻解碼器的具體類型不做限制。
通過(guò)這種方式,可以調(diào)用相應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼,提高了解碼的效率,并能夠方便地實(shí)現(xiàn)不同類型的音頻文件之間的混音。
圖4是根據(jù)一示例性實(shí)施例示出的一種音頻混音方法的步驟S13的流程圖。如圖4所示,在一種可能的實(shí)現(xiàn)方式中,步驟S13包括:
步驟S132,在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,從與所述第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器獲取解碼后的音頻數(shù)據(jù)并存儲(chǔ)到所述緩存空間中,
步驟S133,如果所述相對(duì)應(yīng)的音頻解碼器中已不存在解碼后的音頻數(shù)據(jù),則獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
舉例來(lái)說(shuō),可以對(duì)多個(gè)音頻文件分別進(jìn)行解碼及預(yù)處理,獲得解碼后的多個(gè)音頻數(shù)據(jù)并存儲(chǔ)到緩存空間中。針對(duì)緩存空間中的多個(gè)音頻數(shù)據(jù),可以輪流查詢處理每個(gè)音頻數(shù)據(jù),從每個(gè)音頻數(shù)據(jù)中取出一音頻幀的音頻數(shù)據(jù)(第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù))進(jìn)行混音處理。如果一個(gè)或幾個(gè)的音頻數(shù)據(jù)(第一音頻數(shù)據(jù))的剩余數(shù)據(jù)已經(jīng)不足一音頻幀,則可以查詢第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器。如果相對(duì)應(yīng)的音頻解碼器中存在解碼后的音頻數(shù)據(jù),則可以獲取解碼及預(yù)處理后的音頻數(shù)據(jù),并存儲(chǔ)到所述緩存空間中。然后,可以執(zhí)行正常的混音流程,也即,多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理。
在一種可能的實(shí)現(xiàn)方式中,如果在與第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器中已不存在解碼后的音頻數(shù)據(jù),則可以認(rèn)為對(duì)應(yīng)于第一音頻數(shù)據(jù)的音頻文件已經(jīng)全部解碼。此時(shí),可以獲取第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的每一個(gè)音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)(一音頻幀),進(jìn)行混音處理。其中,第一音頻數(shù)據(jù)可以是緩存空間中的多個(gè)音頻數(shù)據(jù)中的任意一個(gè)或幾個(gè)音頻數(shù)據(jù)。
通過(guò)這種方式,可以在第一音頻數(shù)據(jù)的剩余數(shù)據(jù)不足一音頻幀時(shí)從解碼器獲取解碼后的數(shù)據(jù),并在解碼器不存在解碼后的音頻數(shù)據(jù)時(shí)將第一音頻數(shù)據(jù)的剩余數(shù)據(jù)與其他音頻數(shù)據(jù)進(jìn)行混音處理,提高了混音處理的效率和靈活性。
實(shí)施例2
圖5是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。如圖5所示,該音頻混音裝置包括:解碼模塊51、存儲(chǔ)模塊52以及混音模塊53。
解碼模塊51,用于對(duì)多個(gè)音頻文件分別進(jìn)行解碼,獲得解碼后的多個(gè)音頻數(shù)據(jù);
存儲(chǔ)模塊52,用于將所述解碼后的多個(gè)音頻數(shù)據(jù)存儲(chǔ)到緩存空間中;
混音模塊53,用于從所述緩存空間中的多個(gè)音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理,獲得已混音的音頻數(shù)據(jù)。
圖6是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置的框圖。如圖6所示,在一種可能的實(shí)現(xiàn)方式中,所述混音模塊53包括:
第一混音子模塊531,用于在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
如圖6所示,在一種可能的實(shí)現(xiàn)方式中,所述解碼模塊51包括:
解碼調(diào)用子模塊511,用于調(diào)用與各音頻文件的類型相對(duì)應(yīng)的音頻解碼器對(duì)所述多個(gè)音頻文件分別進(jìn)行解碼。
如圖6所示,在一種可能的實(shí)現(xiàn)方式中,所述混音模塊53包括:
數(shù)據(jù)獲取子模塊532,用于在所述緩存空間中的多個(gè)音頻數(shù)據(jù)中的第一音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度小于第一數(shù)據(jù)長(zhǎng)度的情況下,從與所述第一音頻數(shù)據(jù)相對(duì)應(yīng)的音頻解碼器獲取解碼后的音頻數(shù)據(jù)并存儲(chǔ)到所述緩存空間中;
第二混音子模塊533,用于如果所述相對(duì)應(yīng)的音頻解碼器中已不存在解碼后的音頻數(shù)據(jù),則獲取所述第一音頻數(shù)據(jù)在緩存空間中的所有音頻數(shù)據(jù),并且從除所述第一音頻數(shù)據(jù)之外的音頻數(shù)據(jù)的每一個(gè)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù),進(jìn)行混音處理,
其中,第一音頻數(shù)據(jù)為所述多個(gè)音頻數(shù)據(jù)中的任意音頻數(shù)據(jù)。
在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度通過(guò)以下公式獲得:
第一數(shù)據(jù)長(zhǎng)度=音頻播放設(shè)備的音頻采樣率×音頻播放設(shè)備的聲道數(shù)量×音頻播放設(shè)備支持的音頻樣本長(zhǎng)度/幀率。
在一種可能的實(shí)現(xiàn)方式中,所述解碼后的多個(gè)音頻數(shù)據(jù)為PCM音頻數(shù)據(jù)。
在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:時(shí)間戳獲取模塊,用于獲取所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳。
在一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳通過(guò)以下公式獲得:
所述第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)的時(shí)間戳=已混音的音頻數(shù)據(jù)的長(zhǎng)度/(第一數(shù)據(jù)長(zhǎng)度×幀率)。
根據(jù)本公開的實(shí)施例能夠通過(guò)對(duì)多個(gè)音頻文件分別進(jìn)行解碼并存儲(chǔ)到緩存空間,并且從每個(gè)音頻數(shù)據(jù)中獲取第一數(shù)據(jù)長(zhǎng)度的音頻數(shù)據(jù)進(jìn)行混音處理以獲得已混音的音頻數(shù)據(jù),能夠?qū)崿F(xiàn)不同格式的音頻文件的快速混音。
實(shí)施例3
圖7是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置800的框圖。例如,裝置800可以是移動(dòng)電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個(gè)人數(shù)字助理等。
參照?qǐng)D7,裝置800可以包括以下一個(gè)或多個(gè)組件:處理組件802,存儲(chǔ)器804,電源組件806,多媒體組件808,音頻組件810,輸入/輸出(I/O)的接口812,傳感器組件814,以及通信組件816。
處理組件802通??刂蒲b置800的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件802可以包括一個(gè)或多個(gè)處理器820來(lái)執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件802可以包括一個(gè)或多個(gè)模塊,便于處理組件802和其他組件之間的交互。例如,處理組件802可以包括多媒體模塊,以方便多媒體組件808和處理組件802之間的交互。
存儲(chǔ)器804被配置為存儲(chǔ)各種類型的數(shù)據(jù)以支持在裝置800的操作。這些數(shù)據(jù)的示例包括用于在裝置800上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器804可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),電可擦除可編程只讀存儲(chǔ)器(EEPROM),可擦除可編程只讀存儲(chǔ)器(EPROM),可編程只讀存儲(chǔ)器(PROM),只讀存儲(chǔ)器(ROM),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。
電源組件806為裝置800的各種組件提供電力。電源組件806可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置800生成、管理和分配電力相關(guān)聯(lián)的組件。
多媒體組件808包括在所述裝置800和用戶之間的提供一個(gè)輸出接口的屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來(lái)自用戶的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件808包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)裝置800處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
音頻組件810被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件810包括一個(gè)麥克風(fēng)(MIC),當(dāng)裝置800處于操作模式,如呼叫模式、記錄模式和語(yǔ)音識(shí)別模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器804或經(jīng)由通信組件816發(fā)送。在一些實(shí)施例中,音頻組件810還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。
I/O接口812為處理組件802和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁(yè)按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。
傳感器組件814包括一個(gè)或多個(gè)傳感器,用于為裝置800提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件814可以檢測(cè)到裝置800的打開/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置800的顯示器和小鍵盤,傳感器組件814還可以檢測(cè)裝置800或裝置800一個(gè)組件的位置改變,用戶與裝置800接觸的存在或不存在,裝置800方位或加速/減速和裝置800的溫度變化。傳感器組件814可以包括接近傳感器,被配置用來(lái)在沒有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件814還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件814還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件816被配置為便于裝置800和其他設(shè)備之間有線或無(wú)線方式的通信。裝置800可以接入基于通信標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個(gè)示例性實(shí)施例中,通信組件816經(jīng)由廣播信道接收來(lái)自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件816還包括近場(chǎng)通信(NFC)模塊,以促進(jìn)短程通信。例如,在NFC模塊可基于射頻識(shí)別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來(lái)實(shí)現(xiàn)。
在示例性實(shí)施例中,裝置800可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。
在示例性實(shí)施例中,還提供了一種包括指令的非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器804,上述指令可由裝置800的處理器820執(zhí)行以完成上述方法。
圖8是根據(jù)一示例性實(shí)施例示出的一種音頻混音裝置1900的框圖。例如,裝置1900可以被提供為一服務(wù)器。參照?qǐng)D8,裝置1900包括處理組件1922,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器1932所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理組件1922的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器1932中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件1922被配置為執(zhí)行指令,以執(zhí)行上述音頻混音方法。
裝置1900還可以包括一個(gè)電源組件1926被配置為執(zhí)行裝置1900的電源管理,一個(gè)有線或無(wú)線網(wǎng)絡(luò)接口1950被配置為將裝置1900連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接口1958。裝置1900可以操作基于存儲(chǔ)在存儲(chǔ)器1932的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
在示例性實(shí)施例中,還提供了一種包括指令的非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器1932,上述指令可由裝置1900的處理組件1922執(zhí)行以完成上述方法。
本公開可以是系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本公開的各個(gè)方面的計(jì)算機(jī)可讀程序指令。
計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以保持和存儲(chǔ)由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是――但不限于――電存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、便攜式壓縮盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機(jī)械編碼設(shè)備、例如其上存儲(chǔ)有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不被解釋為瞬時(shí)信號(hào)本身,諸如無(wú)線電波或者其他自由傳播的電磁波、通過(guò)波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過(guò)光纖電纜的光脈沖)、或者通過(guò)電線傳輸?shù)碾娦盘?hào)。
這里所描述的計(jì)算機(jī)可讀程序指令可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)下載到各個(gè)計(jì)算/處理設(shè)備,或者通過(guò)網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無(wú)線網(wǎng)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無(wú)線傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或邊緣服務(wù)器。每個(gè)計(jì)算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計(jì)算機(jī)可讀程序指令,以供存儲(chǔ)在各個(gè)計(jì)算/處理設(shè)備中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
用于執(zhí)行本公開操作的計(jì)算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語(yǔ)言的任意組合編寫的源代碼或目標(biāo)代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言—諸如Smalltalk、C++等,以及常規(guī)的過(guò)程式編程語(yǔ)言—諸如“C”語(yǔ)言或類似的編程語(yǔ)言。計(jì)算機(jī)可讀程序指令可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)—包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一些實(shí)施例中,通過(guò)利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息來(lái)個(gè)性化定制電子電路,例如可編程邏輯電路、現(xiàn)場(chǎng)可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計(jì)算機(jī)可讀程序指令,從而實(shí)現(xiàn)本公開的各個(gè)方面。
這里參照根據(jù)本公開實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本公開的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)可讀程序指令實(shí)現(xiàn)。
這些計(jì)算機(jī)可讀程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。也可以把這些計(jì)算機(jī)可讀程序指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,這些指令使得計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì)則包括一個(gè)制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的各個(gè)方面的指令。
也可以把計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作。
附圖中的流程圖和框圖顯示了根據(jù)本公開的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
以上已經(jīng)描述了本公開的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的技術(shù)改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。