本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種音頻切換方法及裝置。
背景技術(shù):
隨著生活水平的提高,K歌在人們的生活中已經(jīng)越來(lái)越普遍,而且越來(lái)越多的用戶選擇通過(guò)終端應(yīng)用進(jìn)行K歌,從而足不出戶就能享受K歌的樂(lè)趣,在K歌演唱過(guò)程中,用戶一般選擇播放歌曲伴奏,然而,當(dāng)出現(xiàn)用戶不會(huì)演唱的歌曲段落時(shí),用戶則需要將歌曲伴奏切換至歌曲原唱。
為了實(shí)現(xiàn)歌曲伴奏與歌曲原唱之間的切換,需要使用兩個(gè)獨(dú)立的音頻文件,即伴奏文件和原唱文件,該原唱文件包括歌曲伴奏及歌曲人聲演唱,并同時(shí)對(duì)這兩個(gè)音頻文件進(jìn)行解碼,當(dāng)檢測(cè)到用戶的切換操作時(shí),即從伴奏文件的當(dāng)前播放位置跳轉(zhuǎn)至原唱文件相同的播放位置,以保證播放的連續(xù)性。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
對(duì)于一些應(yīng)用來(lái)說(shuō),并不支持同時(shí)對(duì)兩個(gè)音頻文件進(jìn)行解碼,對(duì)于這些應(yīng)用而言,上述相關(guān)技術(shù)無(wú)法實(shí)現(xiàn)歌曲伴奏與歌曲原唱的切換,因此,相關(guān)技術(shù)的適配性較差。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種音頻切換方法及裝置。所述技術(shù)方案如下:
一方面,提供了一種音頻切換方法,所述方法包括:
獲取待播放的音頻文件,所述音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,所述伴奏音頻片段位于所述原唱音頻片段之前;
根據(jù)用戶的播放選擇操作,播放所述伴奏音頻片段和原唱音頻片段中任一片段;
如果在播放過(guò)程中檢測(cè)到音頻切換操作,獲取當(dāng)前所播放的音頻片段的播 放長(zhǎng)度,所述播放長(zhǎng)度為當(dāng)前播放位置距所述音頻文件起始位置的距離;
從所述音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,所述目標(biāo)位置為與所述當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
另一方面,提供了一種音頻切換裝置,所述裝置包括:
音頻文件獲取模塊,用于獲取待播放的音頻文件,所述音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,所述伴奏音頻片段位于所述原唱音頻片段之前;
播放模塊,用于根據(jù)用戶的播放選擇操作,播放所述伴奏音頻片段和原唱音頻片段中任一片段;
播放長(zhǎng)度獲取模塊,用于如果在所述播放模塊播放過(guò)程中檢測(cè)到音頻切換操作,獲取當(dāng)前所播放的音頻片段的播放長(zhǎng)度,所述播放長(zhǎng)度為當(dāng)前播放位置距所述音頻文件起始位置的距離;
所述播放模塊,還用于從所述音頻文件獲取模塊獲取的所述音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,所述目標(biāo)位置為與所述當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
通過(guò)提供由伴奏音頻片段和原唱音頻片段拼接而成的音頻文件,且當(dāng)檢測(cè)到音頻切換操作時(shí),在同一個(gè)音頻文件內(nèi)部進(jìn)行播放進(jìn)度的跳轉(zhuǎn),使得終端僅使用一個(gè)音頻文件就可以實(shí)現(xiàn)伴奏與原唱之間的切換,從而不需要同時(shí)解碼兩個(gè)音頻文件,也不需要解碼器支持多聲道和多音頻流的解碼能力,因此對(duì)所有的應(yīng)用均具有適配性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)一示例性實(shí)施例示出的一種音頻切換方法的流程圖。
圖2是根據(jù)一示例性實(shí)施例示出的一種音頻切換方法的流程圖。
圖3是根據(jù)一示例性實(shí)施例示出的音頻文件的示意圖。
圖4是根據(jù)一示例性實(shí)施例示出的音頻播放界面的示意圖。
圖5是根據(jù)一示例性實(shí)施例示出的一種音頻切換裝置500框圖。
圖6是根據(jù)一示例性實(shí)施例示出的一種音頻切換裝置600框圖。
圖7是根據(jù)一示例性實(shí)施例示出的一種終端700的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1是根據(jù)一示例性實(shí)施例示出的一種音頻切換方法的流程圖,如圖1所示,該音頻切換方法包括以下步驟。
101、終端獲取待播放的音頻文件,該音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,該伴奏音頻片段位于該原唱音頻片段之前。
102、終端根據(jù)用戶的播放選擇操作,播放該伴奏音頻片段和原唱音頻片段中任一片段。
103、如果在播放過(guò)程中檢測(cè)到音頻切換操作,終端獲取當(dāng)前所播放的音頻片段的播放長(zhǎng)度,該播放長(zhǎng)度為當(dāng)前播放位置距該音頻文件起始位置的距離。
104、終端從該音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,該目標(biāo)位置為與該當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
綜上所述,本實(shí)施例提供的音頻切換方法,通過(guò)提供由伴奏音頻片段和原唱音頻片段拼接而成的音頻文件,且當(dāng)檢測(cè)到音頻切換操作時(shí),在同一個(gè)音頻文件內(nèi)部進(jìn)行播放進(jìn)度的跳轉(zhuǎn),使得終端僅使用一個(gè)音頻文件就可以實(shí)現(xiàn)伴奏與原唱之間的切換,從而不需要同時(shí)解碼兩個(gè)音頻文件,也不需要解碼器支持多聲道和多音頻流的解碼能力,因此對(duì)所有的應(yīng)用均具有適配性。
在第一種可能的實(shí)施方式中,該從該音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放包括:
當(dāng)該音頻切換操作為第一音頻切換操作時(shí),從該音頻文件的第一目標(biāo)位置繼續(xù)進(jìn)行播放,該第一音頻切換操作為從伴奏切換至原唱的操作,該第一目標(biāo)位置距該音頻文件起始位置的距離為該伴奏音頻片段的長(zhǎng)度與該播放長(zhǎng)度之和;
或者,
當(dāng)該音頻切換操作為第二音頻切換操作時(shí),從該音頻文件的第二目標(biāo)位置繼續(xù)進(jìn)行播放,該第二音頻切換操作為從原唱切換至伴奏的操作,該第二目標(biāo)位置距該音頻文件起始位置的距離為該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度之差。
在第二種可能的實(shí)施方式中,該獲取音頻文件之前,上述音頻切換方法還包括:
獲取伴奏音頻文件和原唱音頻文件;
對(duì)齊該伴奏音頻文件和該原唱音頻文件,以使該伴奏音頻文件和該原唱音頻文件同步;
將該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度修整至預(yù)設(shè)長(zhǎng)度的倍數(shù),得到修整伴奏音頻文件和修整原唱音頻文件;
拼接該修整伴奏音頻文件和該修整原唱音頻文件,得到該音頻文件。
在第三種可能的實(shí)施方式中,將該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度修整至預(yù)設(shè)長(zhǎng)度的倍數(shù)包括:
分別獲取經(jīng)過(guò)對(duì)齊操作后,該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目;
根據(jù)擴(kuò)充公式分別計(jì)算該伴奏音頻文件和該原唱音頻文件的擴(kuò)充采樣點(diǎn)數(shù)目,該擴(kuò)充公式為:
Lf=N×Int((Lo+N-1)/N)
其中,Lf為該擴(kuò)充采樣點(diǎn)數(shù)目,Lo為該采樣點(diǎn)數(shù)目,N為該預(yù)設(shè)長(zhǎng)度,Int為取整運(yùn)算;
在該伴奏音頻文件和該原唱音頻文件的尾部拼接第一靜音片段,以將該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目擴(kuò)充至該擴(kuò)充采樣點(diǎn)數(shù)目。
在第四種可能的實(shí)施方式中,將該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度修整至預(yù)設(shè)長(zhǎng)度的倍數(shù)之前,上述音頻切換方法還包括:
檢測(cè)該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度是否相等;
若該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度不相等,則獲取長(zhǎng)度差值,該長(zhǎng)度差值為該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度差;
將第二靜音片段拼接至該伴奏音頻文件和該原唱音頻文件中長(zhǎng)度較短的音頻文件尾部,該第二靜音片段的長(zhǎng)度為該長(zhǎng)度差值。
在第五種可能的實(shí)施方式中,獲取伴奏音頻文件和原唱音頻文件之后,上述音頻切換方法還包括:
分別檢測(cè)該伴奏音頻文件和該原唱音頻文件的尾部靜音片段是否超過(guò)預(yù)設(shè)閾值;
若超過(guò)該預(yù)設(shè)閾值,則剪切該伴奏音頻文件和該原唱音頻文件的尾部靜音片段。
在第六種可能的實(shí)施方式中,拼接該修整伴奏音頻文件和該修整原唱音頻文件,得到該音頻文件之后,上述音頻切換方法還包括:
將該修整伴奏音頻文件的長(zhǎng)度添加至該音頻文件的標(biāo)簽中。
在第七種可能的實(shí)施方式中,該根據(jù)用戶的播放選擇操作,播放該伴奏音頻片段和原唱音頻片段中任一片段之前,上述音頻切換方法還包括:
從該音頻文件的標(biāo)簽中獲取該伴奏音頻片段的長(zhǎng)度;
或者,
在獲取該音頻文件時(shí),從音頻數(shù)據(jù)庫(kù)中,獲取該伴奏音頻片段的長(zhǎng)度,該音頻數(shù)據(jù)庫(kù)用于存儲(chǔ)音頻文件和對(duì)應(yīng)的伴奏音頻片段長(zhǎng)度;
或者,
獲取該音頻文件總長(zhǎng)度;
獲取該伴奏音頻片段的長(zhǎng)度,該伴奏音頻片段的長(zhǎng)度為該音頻文件總長(zhǎng)度的二分之一。
在第八種可能的實(shí)施方式中,該播放該音頻文件之后,上述音頻切換方法還包括:
在播放該音頻文件時(shí),檢測(cè)該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度是否相等;
若該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度相等,則停止播放該音頻文件。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。
圖2是根據(jù)一示例性實(shí)施例示出的一種音頻切換方法的流程圖,如圖2所示,該音頻切換方法包括以下步驟。
201、獲取伴奏音頻文件和原唱音頻文件。
本發(fā)明為了解決現(xiàn)有技術(shù)伴奏與原唱切換方式適配性較差的問(wèn)題,提供了 一種對(duì)于一首歌曲僅使用一個(gè)音頻文件就能實(shí)現(xiàn)伴奏與原唱切換的技術(shù)方案,該音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,其中伴奏音頻片段位于原唱音頻片段之前,為了得到該音頻文件,在該音頻文件制作過(guò)程中,需要首先執(zhí)行步驟201,即獲取伴奏音頻文件和原唱音頻文件,從而利用該伴奏音頻文件和原唱音頻文件,通過(guò)后續(xù)拼接等步驟最終得到上述音頻文件。
需要說(shuō)明的是,上述伴奏音頻文件和原唱音頻文件可以為立體聲音頻文件,上述伴奏音頻文件指的是僅包括歌曲伴奏的音頻文件,而上述原唱音頻文件指的是包括歌曲伴奏和歌曲人聲演唱的音頻文件,且,上述伴奏音頻文件與上述原唱音頻文件具有對(duì)應(yīng)關(guān)系,例如,若上述伴奏音頻文件為“同桌的你”伴奏音頻,則上述原唱音頻文件應(yīng)該是“同桌的你”原唱音頻。
另外,由于PCM(Pulse Code Modulation,脈沖編碼調(diào)制)格式的音頻文件便于后續(xù)補(bǔ)齊、剪切、拼接等操作,因此上述伴奏音頻文件和原唱音頻文件的格式可以為PCM格式,若上述伴奏音頻文件和原唱音頻文件的格式為WMA(Windows Media Audio,微軟多媒體音頻)格式、AAC(Advanced Audio Coding,高級(jí)音頻編碼)格式等其他音頻格式時(shí),可以將其轉(zhuǎn)化為PCM格式,以方便進(jìn)行后續(xù)的操作,當(dāng)然上述伴奏音頻文件和原唱音頻文件的格式還可以為其他便于補(bǔ)齊、剪切、拼接等操作的格式,對(duì)此本發(fā)明不做具體限定。
步驟201中獲取的伴奏音頻文件和原唱音頻文件可能會(huì)在文件尾部存在靜音片段,這些尾部靜音片段對(duì)后續(xù)伴奏音頻文件和原唱音頻文件的拼接等操作沒(méi)有貢獻(xiàn),而且過(guò)長(zhǎng)的尾部靜音片段會(huì)增加伴奏音頻文件和原唱音頻文件的大小,從而造成存儲(chǔ)空間的浪費(fèi),因此,在本發(fā)明的一個(gè)實(shí)施例中,步驟201之后,上述音頻切換方法還可以包括如下步驟:分別檢測(cè)該伴奏音頻文件和該原唱音頻文件的尾部靜音片段是否超過(guò)預(yù)設(shè)閾值;若超過(guò)該預(yù)設(shè)閾值,則剪切該伴奏音頻文件和該原唱音頻文件的尾部靜音片段。
需要注意的是,上述預(yù)設(shè)閾值可以由技術(shù)人員進(jìn)行設(shè)定,對(duì)預(yù)設(shè)閾值的具體內(nèi)容本發(fā)明不做限定。
202、對(duì)齊該伴奏音頻文件和該原唱音頻文件,以使該伴奏音頻文件和該原唱音頻文件同步。
步驟201中獲取的伴奏音頻文件和原唱音頻文件雖然具有對(duì)應(yīng)關(guān)系,但該伴奏音頻文件和原唱音頻文件卻不一定同步,也即是伴奏音頻文件可能較原唱 音頻文件提前或落后,例如,在距文件起始位置同樣距離的播放位置上,伴奏音頻文件可能播放到“誰(shuí)娶了多愁善感的你”對(duì)應(yīng)的伴奏,而原唱音頻文件卻播放到“誰(shuí)看了你的日記”,伴奏音頻文件和原唱音頻文件不同步會(huì)導(dǎo)致后續(xù)伴奏與原唱切換時(shí),切換位置錯(cuò)誤,從而無(wú)法保證播放的連續(xù)性。
為了解決這一問(wèn)題,需要執(zhí)行步驟202,即對(duì)齊伴奏音頻文件和原唱音頻文件,具體實(shí)施時(shí),可以采用PCM的互相關(guān)性等方式判斷該伴奏音頻文件和該原唱音頻文件是否同步,若伴奏音頻文件和原唱音頻文件不同步,則可通過(guò)在文件開(kāi)頭添加靜音片段的方式對(duì)齊伴奏音頻文件和原唱音頻文件,例如若伴奏音頻文件較原唱音頻文件提前30ms,則可以添加長(zhǎng)度為30ms的靜音片段至伴奏文件開(kāi)頭,從而對(duì)齊伴奏音頻文件和原唱音頻文件。
需要說(shuō)明的是,步驟201中獲取的伴奏音頻文件和原唱音頻文件可能是互相同步的音頻文件,則在這種情況下,不需要再執(zhí)行步驟202。
203、分別獲取經(jīng)過(guò)對(duì)齊操作后,該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目。
上述伴奏音頻文件和原唱音頻文件的格式均為PCM格式,PCM格式下雖然方便對(duì)音頻進(jìn)行剪切、補(bǔ)齊、拼接等操作,然而這種格式的音頻大小往往較大,因此,在網(wǎng)絡(luò)傳輸時(shí),需要較大的帶寬,且需要較大的存儲(chǔ)空間,因此,在通過(guò)后續(xù)拼接過(guò)程得到音頻文件后,需要采用某種編碼方式對(duì)該音頻文件進(jìn)行編碼,以減小音頻文件大小。
在編碼過(guò)程中,不同的編碼方式下一幀數(shù)據(jù)中包含的采樣點(diǎn)的數(shù)目是不同的,例如,AAC編碼格式中,一幀數(shù)據(jù)包括1024個(gè)采樣點(diǎn),這種情況下,若伴奏音頻文件的采樣點(diǎn)數(shù)目不為1024的倍數(shù),則其最后一幀數(shù)據(jù)需要使用原唱音頻文件的前部采樣點(diǎn)來(lái)填充,這會(huì)導(dǎo)致后續(xù)伴奏與原唱切換過(guò)程中給應(yīng)用程序帶來(lái)復(fù)雜的計(jì)算邏輯。
因此,為了避免這種情況,需要將上述伴奏音頻文件和原唱音頻文件的長(zhǎng)度修整至預(yù)設(shè)長(zhǎng)度的倍數(shù),該預(yù)設(shè)長(zhǎng)度由編碼方式?jīng)Q定,對(duì)于AAC編碼方式而言,該預(yù)設(shè)長(zhǎng)度即為1024,在對(duì)長(zhǎng)度進(jìn)行修整之前,首先需要獲取伴奏音頻文件和原唱音頻文件經(jīng)過(guò)對(duì)齊操作后的采樣點(diǎn)數(shù)目,也即是,執(zhí)行步驟203,需要說(shuō)明的是,這里和本發(fā)明下文所指的長(zhǎng)度均為音頻文件的采樣點(diǎn)數(shù)目,在后面的敘述中本發(fā)明對(duì)此將不再贅述。
204、根據(jù)擴(kuò)充公式分別計(jì)算該伴奏音頻文件和該原唱音頻文件的擴(kuò)充采樣點(diǎn)數(shù)目。
該擴(kuò)充公式為:
Lf=N×Int((Lo+N-1)/N)
其中,Lf為該擴(kuò)充采樣點(diǎn)數(shù)目,Lo為該采樣點(diǎn)數(shù)目,N為該預(yù)設(shè)長(zhǎng)度,Int為取整運(yùn)算。
上述擴(kuò)充采樣點(diǎn)數(shù)目即為上述預(yù)設(shè)長(zhǎng)度的倍數(shù),例如,在編碼方式為AAC時(shí),伴奏音頻文件的長(zhǎng)度為15013213個(gè)采樣點(diǎn),其不為1024的倍數(shù),則可以通過(guò)上述擴(kuò)充公式計(jì)算其需要擴(kuò)充到多少個(gè)采樣點(diǎn)數(shù)目才為1024的倍數(shù),經(jīng)過(guò)計(jì)算得出該伴奏音頻文件的擴(kuò)充采樣點(diǎn)數(shù)目為15013888。
205、在該伴奏音頻文件和該原唱音頻文件的尾部拼接第一靜音片段,以將該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目擴(kuò)充至該擴(kuò)充采樣點(diǎn)數(shù)目,從而得到修整伴奏音頻文件和修整原唱音頻文件。
如上述舉例,伴奏音頻文件原來(lái)的長(zhǎng)度為15013213個(gè)采樣點(diǎn),其需要擴(kuò)充至15013888個(gè)采樣點(diǎn),因此,需要在該伴奏音頻文件的尾部拼接第一靜音片段,該第一靜音片段的長(zhǎng)度即為15013888與15013213之差,也即是675個(gè)采樣點(diǎn)。
當(dāng)然,步驟201中獲取的伴奏音頻文件和原唱音頻文件的長(zhǎng)度可能已經(jīng)為上述預(yù)設(shè)長(zhǎng)度的倍數(shù),則在這種情況下,也可以不執(zhí)行步驟203至205。
為了簡(jiǎn)化后續(xù)伴奏與原唱切換過(guò)程中應(yīng)用程序的計(jì)算邏輯,可以使伴奏音頻文件和該原唱音頻文件的長(zhǎng)度相同,因此在本發(fā)明的一個(gè)實(shí)施例中,在步驟203之前,上述音頻切換方法還可以包括如下步驟:檢測(cè)該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度是否相等;若該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度不相等,則獲取長(zhǎng)度差值,該長(zhǎng)度差值為該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度差;將第二靜音片段拼接至該伴奏音頻文件和該原唱音頻文件中長(zhǎng)度較短的音頻文件尾部,該第二靜音片段的長(zhǎng)度為該長(zhǎng)度差值。
例如,伴奏音頻文件的長(zhǎng)度為1899456個(gè)采樣點(diǎn),而原唱音頻文件的長(zhǎng)度為1899654個(gè)采樣點(diǎn),則伴奏音頻文件和原唱音頻文件的長(zhǎng)度不一致,通過(guò)計(jì)算得出原唱音頻文件的長(zhǎng)度與伴奏音頻文件的長(zhǎng)度差值為198個(gè)采樣點(diǎn),因此,將第二靜音片段拼接至長(zhǎng)度較短的伴奏音頻文件尾部,該第二靜音片段的長(zhǎng)度為198個(gè)采樣點(diǎn)。
206、拼接該修整伴奏音頻文件和該修整原唱音頻文件,得到音頻文件。
拼接步驟205中得到的修整伴奏音頻文件和修整原唱音頻文件,其中修整伴奏音頻文件位于修整原唱音頻文件之前,如圖3所示,圖中上半部分的音頻信號(hào)為左聲道音頻信號(hào),下半部分的音頻信號(hào)為右聲道音頻信號(hào),左半部分的音頻信號(hào)為伴奏音頻信號(hào),右半部分的音頻信號(hào)為原唱音頻信號(hào),圖中橫軸為采樣點(diǎn)數(shù)目,單位為“個(gè)”,縱軸為信號(hào)幅值,單位為“db”。
為了使終端在利用該音頻文件進(jìn)行伴奏與原唱切換時(shí)對(duì)切換位置的計(jì)算準(zhǔn)確,終端需要獲知該音頻文件中伴奏音頻片段的長(zhǎng)度,因此,在本發(fā)明的一個(gè)實(shí)施例中,在步驟206之后,上述音頻切換方法還可以包括:將該修整伴奏音頻文件的長(zhǎng)度添加至該音頻文件的標(biāo)簽中,該標(biāo)簽可以為ID3v2、APE TAG、CueSheet、MP4Chapters等,對(duì)上述標(biāo)簽的具體形式本發(fā)明不做限定,具體地,該標(biāo)簽的內(nèi)容可以為<ACCOMPANY-DURATION>=<15013888>,同樣地,對(duì)上述標(biāo)簽的內(nèi)容本發(fā)明也不做具體限定。
此外,在本發(fā)明的另一個(gè)實(shí)施例中,在步驟206之后,還可以將該修整伴奏音頻文件的長(zhǎng)度添加至音頻數(shù)據(jù)庫(kù)中,該音頻數(shù)據(jù)庫(kù)用于存儲(chǔ)音頻文件和對(duì)應(yīng)的伴奏音頻片段長(zhǎng)度,當(dāng)終端從該音頻數(shù)據(jù)庫(kù)中獲取音頻文件時(shí),同時(shí)即可獲取該修整伴奏音頻文件的長(zhǎng)度。
需要說(shuō)明的是,上述步驟201至206可以由服務(wù)器執(zhí)行,終端可以通過(guò)向服務(wù)器發(fā)送音頻獲取請(qǐng)求的方式獲取該音頻文件,在一些情況中,上述步驟201至206也可以由終端執(zhí)行,即終端在播放該音頻文件前,首先制作該音頻文件,對(duì)此本發(fā)明不做具體限定。
需要說(shuō)明的是,在具體的音頻切換過(guò)程中,服務(wù)器或終端可能已經(jīng)制作出了該音頻文件,因此,在具體的音頻切換過(guò)程中,可以不執(zhí)行步驟201至206的內(nèi)容。
207、終端獲取待播放的音頻文件,該音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,該伴奏音頻片段位于該原唱音頻片段之前。
具體地,終端可以提供K歌界面,該K歌界面可以提供多個(gè)音頻,該多個(gè)音頻可以包括待播放的音頻,當(dāng)檢測(cè)到對(duì)該待播放的音頻的播放選項(xiàng)的觸發(fā)操作時(shí),向服務(wù)器發(fā)送音頻文件獲取請(qǐng)求,該音頻文件獲取請(qǐng)求攜帶該待播放的音頻標(biāo)識(shí),服務(wù)器根據(jù)該待播放的音頻標(biāo)識(shí)返回上述待播放的音頻文件。
當(dāng)然,該待播放的音頻文件可以存儲(chǔ)于終端中,則當(dāng)終端檢測(cè)到對(duì)該待播放的音頻的播放選項(xiàng)的觸發(fā)操作時(shí),獲取該待播放的音頻標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)地址,則終端可以根據(jù)該存儲(chǔ)地址從本地獲取該待播放的音頻文件,本發(fā)明對(duì)音頻文件的獲取方式不做具體限定。
終端在獲取待播放的音頻文件時(shí),也需要獲取該音頻文件中伴奏音頻片段的長(zhǎng)度,以方便進(jìn)行伴奏與原唱之間的切換,具體實(shí)施時(shí),可以有以下三種獲取伴奏音頻片段長(zhǎng)度的方法。
第一種方法、從該音頻文件的標(biāo)簽中獲取該伴奏音頻片段的長(zhǎng)度。
如上所述的,通過(guò)拼接得到該音頻文件后,可以將伴奏音頻片段的長(zhǎng)度添加至該音頻文件的標(biāo)簽中,對(duì)應(yīng)地,終端可以通過(guò)讀取該音頻文件的標(biāo)簽以獲取該伴奏音頻片段的長(zhǎng)度。
第二種方法、在獲取該音頻文件時(shí),從音頻數(shù)據(jù)庫(kù)中,獲取該伴奏音頻片段的長(zhǎng)度,該音頻數(shù)據(jù)庫(kù)用于存儲(chǔ)音頻文件和對(duì)應(yīng)的伴奏音頻片段長(zhǎng)度。
同樣如上所述的,通過(guò)拼接得到該音頻文件后,可以將該伴奏音頻片段的長(zhǎng)度添加至音頻數(shù)據(jù)庫(kù)中,終端在從該音頻數(shù)據(jù)庫(kù)中獲取音頻文件時(shí),即可同時(shí)獲取該伴奏音頻片段的長(zhǎng)度。
第三種方法、獲取該音頻文件總長(zhǎng)度,獲取該伴奏音頻片段的長(zhǎng)度,該伴奏音頻片段的長(zhǎng)度為該音頻文件總長(zhǎng)度的二分之一。
如上所述的,在拼接伴奏音頻文件和原唱音頻文件之前,可以通過(guò)拼接第二靜音片段的方式令伴奏音頻文件和原唱音頻文件的長(zhǎng)度一致,因此,在拼接得到的音頻文件中,伴奏音頻片段的長(zhǎng)度與原唱音頻片段的長(zhǎng)度一致,也即是整個(gè)音頻文件總長(zhǎng)度的二分之一,即,可以通過(guò)獲取該音頻文件總長(zhǎng)度從而獲取該伴奏音頻片段的長(zhǎng)度,然而,需要說(shuō)明的是,該音頻文件經(jīng)過(guò)終端的某些解碼器進(jìn)行解碼后,其總長(zhǎng)度可能會(huì)發(fā)生變化,在這種情況下,不能采用上述方法3來(lái)獲取伴奏音頻片段的長(zhǎng)度。
208、終端根據(jù)用戶的播放選擇操作,播放該伴奏音頻片段和原唱音頻片段中任一片段。
如上所述的,當(dāng)終端檢測(cè)到對(duì)該待播放的音頻的播放選項(xiàng)的觸發(fā)操作后,可以提供音頻播放界面,如圖4所示,該音頻播放界面中可以提供播放原唱選項(xiàng)及播放伴奏選項(xiàng),當(dāng)檢測(cè)到對(duì)該播放原唱選項(xiàng)的觸發(fā)操作后,播放原唱音頻 片段,當(dāng)檢測(cè)到對(duì)該播放伴奏選項(xiàng)的觸發(fā)操作后,播放伴奏音頻片段。
需要說(shuō)明的是,當(dāng)用戶開(kāi)始即選擇播放伴奏音頻片段時(shí),此時(shí),終端不確定用戶是否需要播放原唱音頻片段,因此,為了節(jié)約終端資源,可以僅對(duì)伴奏音頻片段進(jìn)行解碼操作。
209、如果在播放過(guò)程中檢測(cè)到音頻切換操作,終端獲取當(dāng)前所播放的音頻片段的播放長(zhǎng)度,該播放長(zhǎng)度為當(dāng)前播放位置距該音頻文件起始位置的距離。
上述音頻切換操作可以分為第一音頻切換操作和第二音頻切換操作,該第一音頻切換操作為從伴奏切換至原唱的操作,該第二音頻切換操作為從原唱切換至伴奏的操作。具體地,當(dāng)終端當(dāng)前播放歌曲伴奏時(shí),如圖4所示的音頻播放界面可以提供切換原唱選項(xiàng),當(dāng)檢測(cè)到對(duì)該切換原唱選項(xiàng)的觸發(fā)操作后,也即是終端檢測(cè)到第一音頻切換操作,當(dāng)終端當(dāng)前播放歌曲原唱時(shí),該音頻播放界面可以提供切換伴奏選項(xiàng),當(dāng)檢測(cè)到對(duì)該切換伴奏選項(xiàng)的觸發(fā)操作后,也即是終端檢測(cè)到第二音頻切換操作。
210、終端從該音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,該目標(biāo)位置為與該當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
當(dāng)上述音頻切換操作為第一音頻切換操作時(shí),終端從該音頻文件的第一目標(biāo)位置繼續(xù)進(jìn)行播放,該第一目標(biāo)位置距該音頻文件起始位置的距離為該伴奏音頻片段的長(zhǎng)度與該播放長(zhǎng)度之和。
例如,該伴奏音頻片段的長(zhǎng)度為15132個(gè)采樣點(diǎn),播放長(zhǎng)度為151個(gè)采樣點(diǎn),則第一目標(biāo)位置距該音頻文件起始位置的距離為15132+151=15283個(gè)采樣點(diǎn)。顯而易見(jiàn)地,當(dāng)上述音頻切換操作為第一音頻切換操作時(shí),播放長(zhǎng)度一定不大于該伴奏音頻片段的長(zhǎng)度。
當(dāng)該音頻切換操作為第二音頻切換操作時(shí),從該音頻文件的第二目標(biāo)位置繼續(xù)進(jìn)行播放,該第二目標(biāo)位置距該音頻文件起始位置的距離為該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度之差。
例如,該伴奏音頻片段的長(zhǎng)度為15132個(gè)采樣點(diǎn),播放長(zhǎng)度為15283個(gè)采樣點(diǎn),則第二目標(biāo)位置距該音頻文件起始位置的距離為15283-15132=151個(gè)采樣點(diǎn)。顯而易見(jiàn)地,當(dāng)上述音頻切換操作為第二音頻切換操作時(shí),播放長(zhǎng)度一定大于該伴奏音頻片段的長(zhǎng)度,且播放長(zhǎng)度一定小于該音頻文件的總長(zhǎng)度。
終端播放該伴奏音頻片段時(shí),當(dāng)該伴奏音頻片段播放完畢后,不允許繼續(xù) 播放該伴奏音頻片段之后的原唱音頻片段,也即是,此時(shí)終端需要停止對(duì)該音頻文件的播放,因此,在本發(fā)明的一個(gè)實(shí)施例中,上述音頻切換方法還包括:終端在播放該音頻文件時(shí),檢測(cè)該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度是否相等,若該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度相等,則停止播放該音頻文件。
綜上所述,本實(shí)施例提供的音頻切換方法,通過(guò)提供由伴奏音頻片段和原唱音頻片段拼接而成的音頻文件,且當(dāng)檢測(cè)到音頻切換操作時(shí),在同一個(gè)音頻文件內(nèi)部進(jìn)行播放進(jìn)度的跳轉(zhuǎn),使得終端僅使用一個(gè)音頻文件就可以實(shí)現(xiàn)伴奏與原唱之間的切換,從而不需要同時(shí)解碼兩個(gè)音頻文件,也不需要解碼器支持多聲道和多音頻流的解碼能力,因此對(duì)所有的應(yīng)用均具有適配性,進(jìn)一步地,本實(shí)施通過(guò)對(duì)齊伴奏音頻文件和原唱音頻文件,使得當(dāng)檢測(cè)到音頻切換操作時(shí)音頻文件跳轉(zhuǎn)的目標(biāo)位置計(jì)算更為精確,通過(guò)使伴奏音頻文件和原唱音頻文件長(zhǎng)度一致,簡(jiǎn)化了應(yīng)用程序在音頻切換過(guò)程中的計(jì)算邏輯,通過(guò)剪切伴奏音頻文件和原唱音頻文件的尾部靜音片段,減小了音頻文件大小,節(jié)省了網(wǎng)絡(luò)資源和存儲(chǔ)空間。
圖5是根據(jù)一示例性實(shí)施例示出的一種音頻切換裝置500框圖。參照?qǐng)D5,該裝置包括音頻文件獲取模塊501、播放模塊502和播放長(zhǎng)度獲取模塊503。
該音頻文件獲取模塊501,用于獲取待播放的音頻文件,該音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,該伴奏音頻片段位于該原唱音頻片段之前。
在本公開(kāi)的一個(gè)實(shí)施例中,該音頻文件獲取模塊501還用于:
從該音頻文件的標(biāo)簽中獲取該伴奏音頻片段的長(zhǎng)度;
或者,
在該音頻文件獲取模塊501獲取該音頻文件時(shí),從音頻數(shù)據(jù)庫(kù)中,獲取該伴奏音頻片段的長(zhǎng)度,該音頻數(shù)據(jù)庫(kù)用于存儲(chǔ)音頻文件和對(duì)應(yīng)的伴奏音頻片段長(zhǎng)度;
或者,
獲取該音頻文件總長(zhǎng)度;
獲取該伴奏音頻片段的長(zhǎng)度,該伴奏音頻片段的長(zhǎng)度為該音頻文件總長(zhǎng)度的二分之一。
該播放模塊502,用于根據(jù)用戶的播放選擇操作,播放該伴奏音頻片段和原 唱音頻片段中任一片段。
該播放長(zhǎng)度獲取模塊503,用于如果在該播放模塊502播放過(guò)程中檢測(cè)到音頻切換操作,獲取當(dāng)前所播放的音頻片段的播放長(zhǎng)度,該播放長(zhǎng)度為當(dāng)前播放位置距該音頻文件起始位置的距離。
該播放模塊502,還用于從該音頻文件獲取模塊501獲取的該音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,該目標(biāo)位置為與該當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
在本發(fā)明的一個(gè)實(shí)施例中,播放模塊502用于:
當(dāng)該音頻切換操作為第一音頻切換操作時(shí),從該音頻文件的第一目標(biāo)位置繼續(xù)進(jìn)行播放,該第一音頻切換操作為從伴奏切換至原唱的操作,該第一目標(biāo)位置距該音頻文件起始位置的距離為該伴奏音頻片段的長(zhǎng)度與該播放長(zhǎng)度之和;
或者,
當(dāng)該音頻切換操作為第二音頻切換操作時(shí),從該音頻文件的第二目標(biāo)位置繼續(xù)進(jìn)行播放,該第二音頻切換操作為從原唱切換至伴奏的操作,該第二目標(biāo)位置距該音頻文件起始位置的距離為該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度之差。
參見(jiàn)圖6,在本發(fā)明的另一個(gè)實(shí)施例中,還提供了另一種音頻切換裝置600,該裝置基于上述圖5的實(shí)施例結(jié)構(gòu),還包括文件獲取模塊504、對(duì)齊模塊505、修整模塊506、拼接模塊507、第一檢測(cè)模塊508、剪切模塊509、添加模塊510、第二檢測(cè)模塊511和停止模塊512。
該文件獲取模塊504,用于獲取伴奏音頻文件和原唱音頻文件。
該對(duì)齊模塊505,用于對(duì)齊該文件獲取模塊504獲取的該伴奏音頻文件和該原唱音頻文件,以使該伴奏音頻文件和該原唱音頻文件同步。
該修整模塊506,用于將該文件獲取模塊504獲取的該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度修整至預(yù)設(shè)長(zhǎng)度的倍數(shù),得到修整伴奏音頻文件和修整原唱音頻文件。
在本發(fā)明的一個(gè)實(shí)施例中,該修整模塊506用于:
分別獲取經(jīng)過(guò)對(duì)齊操作后,該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目;
根據(jù)擴(kuò)充公式分別計(jì)算該伴奏音頻文件和該原唱音頻文件的擴(kuò)充采樣點(diǎn)數(shù)目,該擴(kuò)充公式為:
Lf=N×Int((Lo+N-1)/N)
其中,Lf為該擴(kuò)充采樣點(diǎn)數(shù)目,Lo為該采樣點(diǎn)數(shù)目,N為該預(yù)設(shè)長(zhǎng)度,Int為取整運(yùn)算;
在該伴奏音頻文件和該原唱音頻文件的尾部拼接第一靜音片段,以將該伴奏音頻文件和該原唱音頻文件的采樣點(diǎn)數(shù)目擴(kuò)充至該擴(kuò)充采樣點(diǎn)數(shù)目。
該拼接模塊507,用于拼接該修整模塊得到的該修整伴奏音頻文件和該修整原唱音頻文件,得到該音頻文件。
該第一檢測(cè)模塊508,用于檢測(cè)該文件獲取模塊504獲取的該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度是否相等。
該文件獲取模塊504,還用于若該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度不相等,則獲取長(zhǎng)度差值,該長(zhǎng)度差值為該伴奏音頻文件和該原唱音頻文件的長(zhǎng)度差。
該拼接模塊507,還用于將第二靜音片段拼接至該伴奏音頻文件和該原唱音頻文件中長(zhǎng)度較短的音頻文件尾部,該第二靜音片段的長(zhǎng)度為該長(zhǎng)度差值。
該第一檢測(cè)模塊508,還用于分別檢測(cè)該伴奏音頻文件和該原唱音頻文件的尾部靜音片段是否超過(guò)預(yù)設(shè)閾值。
該剪切模塊509,用于若超過(guò)該預(yù)設(shè)閾值,則剪切該伴奏音頻文件和該原唱音頻文件的尾部靜音片段。
該添加模塊510,用于將該修整伴奏音頻文件的長(zhǎng)度添加至該音頻文件的標(biāo)簽中。
該第二檢測(cè)模塊511,用于在該播放模塊播放該音頻文件時(shí),檢測(cè)該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度是否相等。
該停止模塊512,用于若該播放長(zhǎng)度與該伴奏音頻片段的長(zhǎng)度相等,則停止播放該音頻文件。
綜上所述,本實(shí)施例提供的音頻切換裝置,通過(guò)提供由伴奏音頻片段和原唱音頻片段拼接而成的音頻文件,且當(dāng)檢測(cè)到音頻切換操作時(shí),在同一個(gè)音頻文件內(nèi)部進(jìn)行播放進(jìn)度的跳轉(zhuǎn),使得終端僅使用一個(gè)音頻文件就可以實(shí)現(xiàn)伴奏與原唱之間的切換,從而不需要同時(shí)解碼兩個(gè)音頻文件,也不需要解碼器支持 多聲道和多音頻流的解碼能力,因此對(duì)所有的應(yīng)用均具有適配性,進(jìn)一步地,本實(shí)施通過(guò)對(duì)齊伴奏音頻文件和原唱音頻文件,使得當(dāng)檢測(cè)到音頻切換操作時(shí)音頻文件跳轉(zhuǎn)的目標(biāo)位置計(jì)算更為精確,通過(guò)使伴奏音頻文件和原唱音頻文件長(zhǎng)度一致,簡(jiǎn)化了應(yīng)用程序在音頻切換過(guò)程中的計(jì)算邏輯,通過(guò)剪切伴奏音頻文件和原唱音頻文件的尾部靜音片段,減小了音頻文件大小,節(jié)省了網(wǎng)絡(luò)資源和存儲(chǔ)空間。
需要說(shuō)明的是:上述實(shí)施例提供的音頻切換裝置在進(jìn)行音頻切換業(yè)務(wù)時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的音頻切換裝置與音頻切換方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
本實(shí)施例提供了一種終端,該終端可以用于執(zhí)行上述各個(gè)實(shí)施例中提供的音頻切換方法。參見(jiàn)圖7,該終端700包括:
終端700可以包括RF(Radio Frequency,射頻)電路710、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器720、輸入單元730、顯示單元740、傳感器750、音頻電路760、WiFi(Wireless Fidelity,無(wú)線保真)模塊770、包括有一個(gè)或者一個(gè)以上處理核心的處理器780、以及電源790等部件。本領(lǐng)域技術(shù)人員可以理解,圖7中示出的終端結(jié)構(gòu)并不構(gòu)成對(duì)終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路710可用于收發(fā)信息或通話過(guò)程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器780處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路710包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機(jī)、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路710還可以通過(guò)無(wú)線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無(wú)線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動(dòng)通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無(wú)線服務(wù))、 CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長(zhǎng)期演進(jìn))、電子郵件、SMS(Short Messaging Service,短消息服務(wù))等。
存儲(chǔ)器720可用于存儲(chǔ)軟件程序以及模塊,處理器780通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器720的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器720可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端700的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器720可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器720還可以包括存儲(chǔ)器控制器,以提供處理器780和輸入單元730對(duì)存儲(chǔ)器720的訪問(wèn)。
輸入單元730可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號(hào)輸入。具體地,輸入單元730可包括觸敏表面731以及其他輸入設(shè)備732。觸敏表面731,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面731上或在觸敏表面731附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。可選的,觸敏表面731可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來(lái)的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器780,并能接收處理器780發(fā)來(lái)的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸敏表面731。除了觸敏表面731,輸入單元730還可以包括其他輸入設(shè)備732。具體地,其他輸入設(shè)備732可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開(kāi)關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元740可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端700的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來(lái)構(gòu)成。顯示單元740可包括顯示面板741,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode, 有機(jī)發(fā)光二極管)等形式來(lái)配置顯示面板741。進(jìn)一步的,觸敏表面731可覆蓋顯示面板741,當(dāng)觸敏表面731檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器780以確定觸摸事件的類型,隨后處理器780根據(jù)觸摸事件的類型在顯示面板741上提供相應(yīng)的視覺(jué)輸出。雖然在圖7中,觸敏表面731與顯示面板741是作為兩個(gè)獨(dú)立的部件來(lái)實(shí)現(xiàn)輸入和輸入功能,但是在某些實(shí)施例中,可以將觸敏表面731與顯示面板741集成而實(shí)現(xiàn)輸入和輸出功能。
終端700還可包括至少一種傳感器750,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來(lái)調(diào)節(jié)顯示面板741的亮度,接近傳感器可在終端700移動(dòng)到耳邊時(shí),關(guān)閉顯示面板741和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端700還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路760、揚(yáng)聲器761,傳聲器762可提供用戶與終端700之間的音頻接口。音頻電路760可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器761,由揚(yáng)聲器761轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器762將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路760接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器780處理后,經(jīng)RF電路710以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器720以便進(jìn)一步處理。音頻電路760還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端700的通信。
WiFi屬于短距離無(wú)線傳輸技術(shù),終端700通過(guò)WiFi模塊770可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁(yè)和訪問(wèn)流式媒體等,它為用戶提供了無(wú)線的寬帶互聯(lián)網(wǎng)訪問(wèn)。雖然圖7示出了WiFi模塊770,但是可以理解的是,其并不屬于終端700的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器780是終端700的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過(guò)運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器720內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器720內(nèi)的數(shù)據(jù),執(zhí)行終端700的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器780可包括一個(gè)或多個(gè)處理核心;優(yōu)選的, 處理器780可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無(wú)線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器780中。
終端700還包括給各個(gè)部件供電的電源790(比如電池),優(yōu)選的,電源可以通過(guò)電源管理系統(tǒng)與處理器780邏輯相連,從而通過(guò)電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源790還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測(cè)電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端700還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實(shí)施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲(chǔ)器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行。所述一個(gè)或者一個(gè)以上程序包含用于執(zhí)行以下操作的指令:獲取待播放的音頻文件,該音頻文件由伴奏音頻片段和原唱音頻片段拼接組成,該伴奏音頻片段位于該原唱音頻片段之前,根據(jù)用戶的播放選擇操作,播放該伴奏音頻片段和原唱音頻片段中任一片段,如果在播放過(guò)程中檢測(cè)到音頻切換操作,獲取當(dāng)前所播放的音頻片段的播放長(zhǎng)度,該播放長(zhǎng)度為當(dāng)前播放位置距該音頻文件起始位置的距離,從該音頻文件的目標(biāo)位置繼續(xù)進(jìn)行播放,該目標(biāo)位置為與該當(dāng)前所播放的音頻片段的播放長(zhǎng)度所對(duì)應(yīng)的另一音頻片段上的播放位置。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。