一種聲音文件連續(xù)播放的方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明屬于多媒體領域,尤其涉及一種聲音文件連續(xù)播放的方法和裝置。
【背景技術】
[0002]在多媒體聲音事件處理時,有時候會需要在極短的時間內(nèi)重復多次播放同一聲音文件,來模仿或者實現(xiàn)一些特殊的現(xiàn)場聲音效果,如連續(xù)開槍的聲音等。
[0003]現(xiàn)有的一般的播放重復聲音文件的方法是:在接收到播放請求時,調(diào)用并播放所述請求對應的聲音文件,這種方法實現(xiàn)簡單,但是當請求時間間隔小于一定值(如100毫秒)時,由于調(diào)用聲音文件需要消耗一定的時間,會造成連續(xù)播放聲音文件時的卡斷現(xiàn)象,其播放效果不佳。
[0004]為了避免出現(xiàn)卡斷現(xiàn)象,現(xiàn)有技術采用了托管并自動連續(xù)播放聲音文件的方法,當?shù)玫酵泄懿⒆詣舆B續(xù)播放的請求時,自動連續(xù)播放所述聲音文件,不會出現(xiàn)中間的卡斷現(xiàn)象,而且播放效率高。但是,當接收到結束播放指令時,系統(tǒng)會直接終止聲音文件的播放,導致聲音信號的平滑過渡性能不好,與自然聲音效果的仿真性能較差。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例的目的在于提供一種聲音文件連續(xù)播放的方法和裝置,以解決現(xiàn)有技術中連續(xù)播放聲音文件時容易出現(xiàn)聲音信號的平滑過渡性能不好、與自然聲音效果的仿真性能較差的問題。
[0006]本發(fā)明實施例是這樣實現(xiàn)的,一種聲音文件連續(xù)播放的方法,用于連續(xù)播放樣本聲音文件,所述方法包括:
[0007]接收第一播放指令,所述第一播放指令用于連續(xù)播放所述樣本聲音文件;
[0008]根據(jù)所述第一播放指令,獲取所述第一播放指令對應的連續(xù)播放結束的時間點;
[0009]根據(jù)所述連續(xù)播放結束的時間點,查找在所述時間點所對應的樣本聲音文件的播放時間值;
[0010]在所述連續(xù)播放結束的時間點,開始播放樣本聲音文件在所述播放時間值之后的聲音數(shù)據(jù)。
[0011]本發(fā)明實施例的另一目的在于提供一種聲音文件連續(xù)播放的裝置,用于連續(xù)播放樣本聲音文件,所述裝置包括:
[0012]第一接收單元,用于接收第一播放指令,所述第一播放指令用于連續(xù)播放所述樣本聲音文件;
[0013]獲取單元,用于根據(jù)所述第一播放指令,獲取所述第一播放指令對應的連續(xù)播放結束的時間點;
[0014]查找單元,用于根據(jù)所述連續(xù)播放結束的時間點,查找在所述時間點所對應的樣本聲音文件的播放時間值;
[0015]播放單元,用于在所述連續(xù)播放結束的時間點,開始播放樣本聲音文件在所述播放時間值之后的聲音數(shù)據(jù)。
[0016]在本發(fā)明實施例在連續(xù)播放聲音文件時,根據(jù)第一播放指令查找到連續(xù)播放結束的時間點,并根據(jù)所述連續(xù)播放結束的時間點查找到樣本聲音文件的播放時間值,使得在所述連續(xù)播放結束的時間點能夠繼續(xù)播放樣本聲音文件在所述播放時間值之后的聲音數(shù)據(jù),和現(xiàn)有技術相比,能夠更好的提高聲音信號的平滑過渡性能,增強與自然聲音效果的仿真性能。
【附圖說明】
[0017]圖1是本發(fā)明第一實施例提供的聲音文件連續(xù)播放的方法的實現(xiàn)流程圖;
[0018]圖2為本發(fā)明第一實施例提供的單個聲音文件在循環(huán)播放時,循環(huán)播放結束的時間點對應的播放時間值的示意圖;
[0019]圖3為本發(fā)明第一實施例提供的多個聲音文件在循環(huán)播放時,循環(huán)播放結束的時間點對應的播放時間值的示意圖;
[0020]圖4為本發(fā)明第二實施例提供的聲音文件連續(xù)播放的實現(xiàn)流程;
[0021]圖5為本發(fā)明第二實施例提供的非連續(xù)播放單個聲音文件的示意圖;
[0022]圖6為本發(fā)明第三實施例提供的聲音文件連續(xù)播放的裝置的結構框圖;
[0023]圖7為本發(fā)明第四實施例提供的終端的結構框圖。
【具體實施方式】
[0024]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]在本發(fā)明實施例所述的聲音文件連續(xù)播放方法,主要可應用于播放的頻率較高,即播放的間隔時間很小的單個樣本聲音文件的循環(huán)重復播放。作為其可能應用的其它應用場景,如多個不同的聲音文件的連續(xù)播放,基于本發(fā)明的發(fā)明思路,獲取停止播放的時間點后,根據(jù)多個聲音文件的播放順序以及各個聲音文件的播放時長,相應的獲取所述停止播放的時間點所對應的聲音文件的播放時間值,并繼續(xù)播放接下來的未播放所述聲音文件的聲音數(shù)據(jù)。下面通過實施例對本發(fā)明具體說明。
[0026]實施例一:
[0027]圖1示出了本發(fā)明第一實施例提供的聲音文件連續(xù)播放的方法的實現(xiàn)流程,可用于連續(xù)播放樣本聲音文件,詳述如下:
[0028]在步驟SlOl中,接收第一播放指令,所述第一播放指令用于連續(xù)播放所述樣本聲音文件。
[0029]具體的,所述第一播放指令,根據(jù)系統(tǒng)的預先設定,可以為點擊觸發(fā)的指令,也可以為持續(xù)觸發(fā)的指令。所述點擊觸發(fā)可以為鼠標的點擊指令或者鍵盤的點擊指令,如鼠標單擊、鍵盤的單擊等。所述持續(xù)觸發(fā)指令可以為鼠標的持續(xù)按壓(按下鼠標左鍵持續(xù)一段時間不放),或者鍵盤的特定銨鍵的持續(xù)按壓(按下鍵盤特定按鍵后持續(xù)一段時間不放)。
[0030]所述用于連續(xù)播放的樣本聲音文件,可以為單個的聲音文件,也可以為多個聲音文件。當為單個的聲音文件時,所述連續(xù)播放即為對所述單個聲音文件的循環(huán)重復播放,當為多個聲音文件時,所述連續(xù)播放即為對所述多個聲音文件,按照預先設定的播放順序依次播放。
[0031]所述連續(xù)播放的條件,是指在接收到前一播放指令后的一定時長范圍內(nèi)(所述一定的時長范圍,在連續(xù)播放不同長度的聲音文件時,可以根據(jù)所需要播放聲音文件相應的變化),是否接收到新的播放指令,如果有接收到播放指令,則連續(xù)播放下一聲音文件。
[0032]所述一定時長范圍可以為與待播放的聲音文件的時長相應的時間長度,如與單個聲音文件的播放時長相同。如在連續(xù)播放時,單個的開槍的聲音文件的時長為94毫秒(可以小于正常開槍的聲音文件的播放時長100毫秒),如果在94毫秒內(nèi)沒有接收到新的播放指令,則結束連續(xù)播放聲音文件;否則連續(xù)播放所述開槍的聲音文件,直到連續(xù)94毫秒沒有接收到新的播放指令。
[0033]根據(jù)預先設定的連續(xù)播放的時間間隔,當所述樣本聲音文件為單個聲音文件時,如果預設的連續(xù)播放的時間間隔大于或等于單個聲音文件的播放時間,在循環(huán)播放時間內(nèi)時,可以為循環(huán)的、完整的、播放單個聲音文件;如果預設的連續(xù)播放的時間間隔小于單個聲音文件的播放時間,則可播放單個聲音文件的部分聲音數(shù)據(jù)(在播放頻率非常大的應用場合,這種情況比較常見,如連續(xù)開槍的聲音時為單個開槍的聲音文件的前部分聲音數(shù)據(jù)的重復播放)。
[0034]當所述樣本聲音文件為多個不同的聲音文件時,可以根據(jù)樣本文件中不同聲音長度,相應的設定不同的時長范圍,在各設定的不同時長范圍內(nèi),判斷是否接收到連續(xù)播放的指令,如果有則連續(xù)播放樣本聲音文件中的下一聲音文件,否則在所述設定的時長范圍到達時的時間點,作為第一播放指令對應的