專利名稱:一種音頻快速播放方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體播放領(lǐng)域,尤其涉及一種快速播放音頻的技術(shù)。
背景技術(shù):
播放音頻的硬件設(shè)備可以有多種類型、多種型號,但其音頻輸出原理都
是利用DAC (Digital-Analog Converter,模擬到數(shù)字信號轉(zhuǎn)換器)進(jìn)行聲音的 輸出將音頻數(shù)據(jù)(數(shù)字信號)發(fā)送到DAC中,DAC輸出相應(yīng)的模擬信號 (模擬電壓或電流),該模擬信號經(jīng)揚(yáng)聲器或者耳^L等音響設(shè)備輸出,從而實(shí) 現(xiàn)音頻插^丈。
為了控制音頻播放裝置進(jìn)行音頻播放,通常需要一個(gè)音頻播放控制器來 協(xié)調(diào)、控制音頻播放裝置,以達(dá)到音頻播放需求(如圖l所示)。常用的音頻 播放裝置可以是音頻編解碼WM9713芯片(也稱AC97編解碼芯片)、音頻播 放控制器可以是AC ( Audio Codec,音頻編碼)97控制器。
系統(tǒng)在通過音頻硬件設(shè)備進(jìn)行音頻播放時(shí),通常都是調(diào)用系統(tǒng)的相關(guān)驅(qū) 動程序來實(shí)現(xiàn)對硬件音頻播放裝置(例如音頻編解碼WM9713芯片)進(jìn)行音 頻播放控制。
如圖2所示,現(xiàn)有技術(shù)中對硬件音頻播放裝置進(jìn)行音頻播放控制,具體 包括如下步驟
5201、 接收到音頻播放請求,調(diào)用相應(yīng)的音頻播放程序。 接收的音頻播放請求比如可以是MP3播放請求,或者播放操作音的請求
(例如鼠標(biāo)點(diǎn)擊時(shí)播放聲音的請求、或者進(jìn)行選中、刪除等操作時(shí)播放聲音 的請求)。根據(jù)接收的音頻播放請求,調(diào)用相應(yīng)的音頻播放程序。
5202、 音頻播^文程序打開相應(yīng)的音頻文件。
5203、 音頻播放程序設(shè)置采樣率參數(shù)。
5204、 音頻播放程序設(shè)置采樣格式參數(shù)。
5205、 音頻播放程序設(shè)置聲道參數(shù)。
5206、 音頻播放程序從音頻文件獲得音頻數(shù)據(jù),并將獲得的音頻數(shù)據(jù)寫 入到DMAbuffer。
5207、 DMA (Direct Memory Access,直接內(nèi)存存儲)控制器才艮據(jù)設(shè)置的 參數(shù)將DMAbuffer的音頻數(shù)據(jù)輸出到音頻播放控制器。
DMA控制器設(shè)置的參數(shù)將DMA buffer的音頻數(shù)據(jù)以一定速率寫入到音 頻播放控制器中特定的寄存器中。例如,設(shè)置的聲道參數(shù)為左聲道參數(shù),則 DMA控制器將DMA buffer的音頻數(shù)據(jù)以一定速率寫入到音頻播放控制器的 左聲道寄存器中。
5208、 音頻播放控制器將音頻數(shù)據(jù)傳送到音頻播放裝置。 音頻播放控制器根據(jù)寫入到寄存器中的數(shù)據(jù)按照協(xié)議組成一幀數(shù)據(jù)后,
將該幀數(shù)據(jù)發(fā)送給音頻播放裝置。
以AC97控制器和AC97編解碼芯片為例(如圖3所示),AC97編解碼 芯片傳送數(shù)據(jù)遵循AC-LINK數(shù)字序列接口協(xié)議。根據(jù)該協(xié)議,AC97控制器 和AC97編解碼芯片之間傳輸信號的接線包括傳輸復(fù)位信號AC97一RESET 的接線,傳輸輸出數(shù)據(jù)信號AC97_SDATA_OUT的接線,傳輸時(shí)鐘信號 AC97一BITCLK的接線,傳輸同步信號AC97一SYNC的接線和傳輸輸入數(shù)據(jù)信 號AC97—SDATA—IN的接線。
在AC97_SDATA_OUT和AC97_SDATA_IN傳遞的數(shù)據(jù)流中,每256位 構(gòu)成被稱為一幀(frame ),每幀又分成13個(gè)時(shí)隙(slot time ),其中slot 0被 稱為標(biāo)簽段(tag phase),為16位,而余下的slotl直至slot 12 ,每個(gè)時(shí)隙 為20位,被稱為數(shù)據(jù)段(dataphase)。
slot0的各位作用如下bitl5:表明該幀是否有效;bit 14-2 :表明哪個(gè)slot 有效;bit 1-0:表明該幀發(fā)往哪個(gè)AC97編解碼芯片(因一個(gè)AC97控制器可
以與多個(gè)AC97編解碼芯片連接)。
slot 1和slot2主要用于讀寫AC97編解碼芯片的寄存器slotl中為寄存 器的索引值,而slot2中為要讀寫的數(shù)據(jù)。
slot 3和slot 4中為左、右聲道的音頻數(shù)據(jù)。通過DMA控制器往AC97 控制器的左、右聲道音頻數(shù)據(jù)寄存器寫入音頻數(shù)據(jù),AC97控制器將寫入到左、 右聲道音頻數(shù)據(jù)寄存器的音頻數(shù)據(jù)轉(zhuǎn)到slot 3和slot 4中,組成一幀數(shù)據(jù)后, AC97控制器將該幀數(shù)據(jù)發(fā)送到AC97編解碼芯片。
slot 5中則為混合音頻數(shù)據(jù)。通過DMA控制器往AC97控制器的MODR (Modem Data Register,調(diào)制數(shù)據(jù)寄存器)寫入音頻數(shù)據(jù),AC97控制器根據(jù) 寫入到MODR寄存器(即混合音頻數(shù)據(jù)寄存器)的音頻數(shù)據(jù)轉(zhuǎn)到slot5,組成 一幀數(shù)據(jù)后,傳送到AC97編解碼芯片中。AC97編解碼芯片將slot 5中的混 合音頻數(shù)據(jù)分別與slot3、 slot4中的音頻數(shù)據(jù)進(jìn)行混合后,分別輸出到左、右 通道,左、右通道分別根據(jù)輸入的混合數(shù)據(jù)輸出相應(yīng)的模擬信號。這樣,在 原左、右輸出音頻的基礎(chǔ)上還可以混合輸出 一個(gè)背景聲音。
以上左、右聲道音頻數(shù)據(jù)寄存器以及MODR寄存器都可以統(tǒng)稱為音頻數(shù) 據(jù)寄存器。這些音頻數(shù)據(jù)寄存器通常是多個(gè)雙字節(jié)的先入先出隊(duì)列,這樣便 于對接收的數(shù)據(jù)進(jìn)行緩沖。例如,在AC97控制器中的MODR寄存器具有16 個(gè)雙字節(jié)的隊(duì)列。
AC97編解碼芯片根據(jù)接收的數(shù)據(jù)幀輸出相應(yīng)的模擬信號到音響設(shè)備,進(jìn) 行音頻輸出。
S209、音頻播放裝置中的DAC轉(zhuǎn)換器根據(jù)輸入的音頻數(shù)據(jù)輸出模擬信號 到音響設(shè)備,由音響設(shè)備實(shí)現(xiàn)音頻輸出。
音頻播放裝置根據(jù)接收的幀數(shù)據(jù)向相應(yīng)聲道的DAC轉(zhuǎn)換器中輸入音頻數(shù) 據(jù),由的DAC轉(zhuǎn)換器輸出模擬信號到音響設(shè)備,由音響設(shè)備實(shí)現(xiàn)音頻輸出。
本發(fā)明的發(fā)明人發(fā)現(xiàn),由于現(xiàn)有技術(shù)進(jìn)行音頻播放的方法需要打開文件、 調(diào)用許多參數(shù)設(shè)置的驅(qū)動程序,而這些打開、或調(diào)用的操作需要占用較多的
系統(tǒng)資源以及時(shí)間,從而在接收到音頻播放請求時(shí),不能快速進(jìn)行相關(guān)的音
頻播放;也就是說,在接收到音頻播放請求后需要延遲一段時(shí)間系統(tǒng)才能輸 出音頻。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種音頻快速播放方法及裝置,用以達(dá)到快速輸出 音頻的目的。
一種音頻快速播;改方法,包括
根據(jù)接收的用戶操作信息解析出的音頻播放請求,調(diào)用音頻播放程序;
所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到 音頻播放控制器的音頻數(shù)據(jù)寄存器中;
所述音頻播放控制器根據(jù)寫入的音頻數(shù)據(jù)生成數(shù)據(jù)幀傳送到音頻播放裝 置,所述音頻播放裝置根據(jù)接收的數(shù)據(jù)幀進(jìn)行音頻播放。
所述音頻數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)是預(yù)先根據(jù)要播放的音頻文件中的信息 以設(shè)定采樣率進(jìn)行轉(zhuǎn)換的;所述特定速率根據(jù)所述采樣率確定。
所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到 音頻播放控制器的音頻數(shù)據(jù)寄存器中,具體包括
所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)通過直接內(nèi)存存儲 DMA控制器寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中,在每次延時(shí)函數(shù)的 延時(shí)時(shí)間到達(dá)時(shí),所述DMA控制器向音頻播放控制器的音頻數(shù)據(jù)寄存器寫入 一個(gè)音頻數(shù)據(jù);所述系統(tǒng)延時(shí)函數(shù)的延時(shí)時(shí)間根據(jù)所述速率確定。
或者,所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率 寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中,具體包括
在每次延時(shí)函數(shù)的延時(shí)時(shí)間到達(dá)時(shí),所述音頻播放程序直接向音頻播放 控制器的音頻數(shù)據(jù)寄存器寫入一個(gè)音頻數(shù)據(jù);所述延時(shí)函數(shù)的延時(shí)時(shí)間根據(jù) 所述速率確定。
在調(diào)用音頻播放程序之前,還包括
根據(jù)接收的用戶操作信息還解析出其它操作請求;以及
根據(jù)音頻播放請求調(diào)用音頻播放程序一段時(shí)間后,再根據(jù)所述其它操作
請求進(jìn)行其它操作。
一種音頻快速播;故裝置,包括音頻播放控制器,用于根據(jù)接收的音頻
數(shù)據(jù)生成數(shù)據(jù)幀并輸出;音頻播放裝置,用于根據(jù)接收的數(shù)據(jù)幀進(jìn)行音頻播
放;所述裝置還包括
操作信息解析模塊,用于根據(jù)接收的用戶操作信息解析出音頻播放請求; 音頻數(shù)據(jù)寫入模塊,用于根據(jù)解析出的音頻播放請求將音頻數(shù)據(jù)數(shù)組中
的音頻數(shù)據(jù)依次以特定速率寫入到所述音頻播放控制器的音頻數(shù)據(jù)寄存器中。
本發(fā)明實(shí)施例由于直接以一定速率向音頻播放控制器的音頻數(shù)據(jù)寄存器 寫入音頻數(shù)據(jù),就不必通過調(diào)用系統(tǒng)驅(qū)動程序來進(jìn)行打開音頻文件、進(jìn)行各 種音頻播放參數(shù)的設(shè)置,從而在播放音頻的過程中更節(jié)約系統(tǒng)資源、并縮短 了音頻開始播放的延時(shí)時(shí)間,達(dá)到快速播放音頻的目的。
圖1為現(xiàn)有技術(shù)的硬件音頻播放裝置和音頻播》文控制裝置示意圖; 圖2為現(xiàn)有技術(shù)的音頻播放方法流程圖3為現(xiàn)有技術(shù)的AC97控制器和AC97編解碼芯片的連接示意圖; 圖4為本發(fā)明實(shí)施例的音頻播放方法流程圖; 圖5為本發(fā)明實(shí)施例的音頻播放裝置框圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例根據(jù)用戶操作信息解析出音頻播放請求后,調(diào)用的音頻播 放程序控制以特定速率將預(yù)先根據(jù)音頻文件中的信息轉(zhuǎn)換的音頻數(shù)據(jù)寫入到
音頻播放控制器的音頻數(shù)據(jù)寄存器中,從而達(dá)到播放一定采樣率的音頻的目 的。由于以特定速率直接向音頻播放控制器的音頻數(shù)據(jù)寄存器寫入音頻數(shù)據(jù), 就不必再通過調(diào)用系統(tǒng)驅(qū)動程序來進(jìn)行打開文件操作、設(shè)置音頻播放的采樣 率、聲道參數(shù)等,從而縮短了音頻開始播放的時(shí)間,達(dá)到快速播放音頻的目 的。
本發(fā)明實(shí)施例提供的快速播放音頻的方法,流程圖如圖4所示,包括如 下步驟
5401、 將要播放的音頻文件中的信息根據(jù)設(shè)定的采樣率w轉(zhuǎn)換為音頻播 放程序中的音頻數(shù)據(jù)數(shù)組中的數(shù)據(jù)。
通常播放的音頻以一定格式的音頻文件進(jìn)行保存,為了能夠?qū)σ纛l播放 控制器的音頻數(shù)據(jù)寄存器直接寫入音頻數(shù)據(jù),需要將不同格式的音頻文件都 轉(zhuǎn)換為音頻數(shù)據(jù)寄存器所能接受的音頻數(shù)據(jù),再將這些音頻數(shù)據(jù)存入到音頻 播放程序中的音頻數(shù)據(jù)數(shù)組。例如,AC97控制器的MODR寄存器為32位的, 其中低16位有效,則可以將音頻文件中的信息轉(zhuǎn)換為16位的音頻數(shù)據(jù)。
對于同 一個(gè)音頻文件采用不同的采樣率來轉(zhuǎn)換音頻數(shù)據(jù)會有不同的結(jié) 果。 一般來說,采樣率越高生成的音頻數(shù)據(jù)就越多,根據(jù)該音頻數(shù)據(jù)進(jìn)行播 放的效果就越好。
通??梢愿鶕?jù)實(shí)際需要來確定采樣率。例如,確定該音頻的播放采用48K 的采樣率就可以達(dá)到要求了,那么可以通過音頻編輯器(比如Audacity軟件) 將截取的一段音頻片段,轉(zhuǎn)換為采樣率為48K,單聲道,8位采樣的原始數(shù)據(jù) 采樣格式(RAW格式)文件,再通過編輯軟件(比如UltraEdit軟件)打開該 文件,將里面的數(shù)據(jù)轉(zhuǎn)換為Ox開始的四位16進(jìn)制數(shù)據(jù)。
5402、 根據(jù)接收的用戶的操作信息解析出音頻播放請求后,調(diào)用音頻播 放程序。
在接收到用戶的操作信息后,比如某個(gè)按鍵、或某幾個(gè)按鍵組合的信息 后,對用戶的操作信息進(jìn)行解析,并確定有音頻播放請求后(比如點(diǎn)擊觸摸
屏按鍵即實(shí)現(xiàn)快速發(fā)聲的點(diǎn)屏音播放請求),則調(diào)用相應(yīng)的音頻播放程序(點(diǎn) 屏音播放程序)。
S403、音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的數(shù)據(jù)以一定速率直接寫入到音 頻播放控制器的音頻數(shù)據(jù)寄存器。
音頻播放程序?qū)⒁纛l數(shù)據(jù)寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器的速 率等于采樣率w,這樣就可以保證4番放的音頻不失真。
如果音頻播放程序?qū)⒁纛l數(shù)據(jù)寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器 的速率小于采樣率w,那么播放的音頻會偏慢;
如果音頻播放程序?qū)⒁纛l數(shù)據(jù)寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器 的速率大于釆樣率w,那么播放的音頻會變快,如同快進(jìn)的效果。
音頻播放程序?qū)⒁纛l數(shù)據(jù)以 一定速率寫入到音頻播放控制器的音頻數(shù)據(jù) 寄存器,具體可以有如下方法
通過DMA控制器將音頻數(shù)據(jù)寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器, 并且DMA控制器根據(jù)系統(tǒng)延時(shí)函數(shù)來控制寫入音頻數(shù)據(jù)的速率。具體為,在 延時(shí)函數(shù)延時(shí)時(shí)間到達(dá)時(shí),DMA控制器即控制向音頻播放控制器的音頻數(shù)據(jù) 寄存器寫入一個(gè)音頻數(shù)據(jù)。延時(shí)函數(shù)(比如系統(tǒng)延時(shí)函數(shù)schedule_timeout) 的延時(shí)時(shí)間可以根據(jù)采樣率w計(jì)算出來(比如延時(shí)時(shí)間等于1/w)。
方法二
也可以是音頻播放程序直接向音頻數(shù)據(jù)寄存器寫入音頻數(shù)據(jù),并且通過 延時(shí)函數(shù)(比如自定義的延時(shí)函數(shù)udelay())來控制向音頻數(shù)據(jù)寄存器寫入音 頻數(shù)據(jù)的速率。比如,對于模擬48K采樣率的音頻播放,即向音頻數(shù)據(jù)寄存 器以速率48K寫入音頻數(shù)據(jù)。這樣,每發(fā)送一個(gè)音頻數(shù)據(jù)需要20.8微秒的延 時(shí),為了取得這個(gè)延時(shí),可以采用發(fā)送6個(gè)數(shù)據(jù)共花費(fèi)125微秒的方法,6個(gè) 數(shù)據(jù)中5個(gè)數(shù)據(jù)的延遲時(shí)間可以設(shè)為21微秒,1個(gè)數(shù)據(jù)的延遲時(shí)間可以設(shè)為 20微秒;也就是,每6個(gè)數(shù)據(jù)中的發(fā)送5個(gè)數(shù)據(jù)時(shí)延時(shí)函數(shù)udday()延時(shí)時(shí) 間設(shè)置為21微秒,發(fā)送1個(gè)數(shù)據(jù)時(shí)延時(shí)函數(shù)udelay()延時(shí)時(shí)間設(shè)置為20微
秒。這樣就精確的模擬了 48K采樣率音頻數(shù)據(jù)的播放。
音頻播放控制器的音頻數(shù)據(jù)寄存器可以是左、右聲道音頻數(shù)據(jù)寄存器、 或者混合音頻數(shù)據(jù)寄存器,本領(lǐng)域技術(shù)人員可以根據(jù)具體情況決定。
5404、 音頻播放控制器根據(jù)接收的音頻數(shù)據(jù)生成數(shù)據(jù)幀傳送到音頻播放 裝置。
5405、 音頻播放裝置根據(jù)接收的數(shù)據(jù)幀輸出相應(yīng)的模擬信號到音響設(shè)備 進(jìn)行音頻播放。
通過上述方法,由于直接以一定速率向音頻播放控制器的音頻數(shù)據(jù)寄存 器寫入音頻數(shù)據(jù),就不必通過調(diào)用系統(tǒng)驅(qū)動程序來進(jìn)行各種音頻播放的參數(shù) 設(shè)置,從而在播放音頻的過程中更節(jié)約系統(tǒng)資源、并縮短開始播放的延時(shí)時(shí) 間,達(dá)到快速音頻播放的目的。而且本發(fā)明實(shí)施例的方案更適合應(yīng)用于要求 快速發(fā)音、且發(fā)音量小的音頻播放請求,例如點(diǎn)屏音播放請求。在用戶點(diǎn)屏 后,應(yīng)該立即發(fā)出相應(yīng)的聲音,如果聲音延遲過大,就會導(dǎo)致用戶對點(diǎn)屏操 作的誤解(以為點(diǎn)屏無效或者點(diǎn)錯(cuò)了 ),而通常點(diǎn)屏音的播放非常簡短,比如 只是"嘟"的一聲,那么應(yīng)用上述的方案能夠達(dá)到快速插^放點(diǎn)屏音的效果。
雖然上述方法節(jié)省了許多步驟、也節(jié)約了系統(tǒng)資源,但是如果在接收到 用戶的操作信息后,還解析出系統(tǒng)還需要進(jìn)行一些其它操作,比如界面更新、 后臺計(jì)算、數(shù)據(jù)傳輸?shù)?。那么如果同時(shí)調(diào)用音頻播放程序并進(jìn)行其它操作, 就可能出現(xiàn)系統(tǒng)資源搶占的情況。 一種避免系統(tǒng)資源搶占的方法是先調(diào)用 音頻播放程序,在調(diào)用音頻播放程序的一段時(shí)間后再進(jìn)行其它操作。例如, 用戶點(diǎn)擊觸摸屏的按鍵后,由于按鍵抖動的原因,系統(tǒng)會在短時(shí)間(比如lms) 內(nèi)接收到多個(gè)(比如10個(gè))按鍵信號,則可以在接收到第m (比如2)個(gè)按 鍵信號時(shí)調(diào)用音頻播放程序,在接收到第A (比如3 )個(gè)按鍵信號時(shí)進(jìn)行震動 操作,在接收到第"(比如4)個(gè)按鍵信號時(shí)進(jìn)行界面更新等應(yīng)用程序的操作。 其中,w小于A:, A小于w。由于將音頻播放程序與執(zhí)行其它操作的程序的執(zhí) 行時(shí)間錯(cuò)開,從而能夠更好的保證音頻的快速播放、以及無失真。
由于多數(shù)系統(tǒng)同時(shí)配有耳機(jī)和揚(yáng)聲器。那么在執(zhí)行上述步驟S403之前, 可以先確定系統(tǒng)是否接有耳機(jī),如果是,則設(shè)置耳機(jī)聲音通道;若否,則設(shè) 置揚(yáng)聲器聲音通道,并打開功放芯片(用于音頻放大的芯片),并在完成音頻 播放后關(guān)閉功放芯片。
此外,在進(jìn)行該次音頻播放以前,系統(tǒng)有可能正在進(jìn)行其它音頻的播放。 而在該次音頻播放完后,還需要繼續(xù)進(jìn)行其它音頻的播放。那么在上述步驟 S403之前還需要保存當(dāng)前通道參數(shù),具體操作是將音頻播放控制器中的寄存 器的值進(jìn)行保存,在該次音頻播放完后,再將保存的寄存器值重新寫入到音 頻播放控制器中,以恢復(fù)音頻播放控制器中各寄存器的值,這樣便恢復(fù)了初 始通道的參凄t。
本發(fā)明實(shí)施例提供的一種快速播放音頻的裝置,如圖5所示,包括用 戶操作信息解析模塊501、音頻數(shù)據(jù)寫入模塊502、音頻播放控制器503、音 頻播放裝置504。
用戶操作信息解析模塊501用于根據(jù)接收的用戶操作信息解析出音頻播 放請求。
音頻數(shù)據(jù)寫入模塊502用于根據(jù)解析出的音頻播》文請求將音頻數(shù)據(jù)數(shù)組 中的音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中; 所述音頻數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)是將要播放的音頻文件中的信息以設(shè)定采樣 率進(jìn)行轉(zhuǎn)換的;所述特定速率根據(jù)所述采樣率確定。
音頻播放控制器503根據(jù)接收的音頻數(shù)據(jù)生成數(shù)據(jù)幀傳送到音頻播放裝 置504。
音頻播放裝置504根據(jù)接收的數(shù)據(jù)幀輸出相應(yīng)的模擬信號到音響設(shè)備輸 出音頻。
進(jìn)一步,用戶操作信息解析模塊501還用于根據(jù)接收的用戶操作信息還 解析出其它操作請求,并在輸出所述音頻播放請求一段時(shí)間后,再輸出其它 操作請求。
音頻播放裝置504還用于在寫入音頻數(shù)據(jù)前,將音頻播放控制器中的寄 存器的值進(jìn)行保存;以及在所有音頻數(shù)據(jù)都寫入后,將保存的寄存器值重新 寫入到音頻播放控制器中。
本發(fā)明實(shí)施例由于直接以一定速率向音頻播放控制器的音頻數(shù)據(jù)寄存器 寫入音頻數(shù)據(jù),就不必通過調(diào)用系統(tǒng)驅(qū)動程序來進(jìn)行打開音頻文件、進(jìn)行各 種音頻播放參數(shù)的設(shè)置,從而在播放音頻的過程中更節(jié)約系統(tǒng)資源、并縮短 了音頻開始插d丈的延時(shí),達(dá)到快速播放音頻的目的。
進(jìn)一步,由于將音頻播放程序與執(zhí)行其它操作的程序的執(zhí)行時(shí)間錯(cuò)開, 從而能夠更好的保證音頻的快速播放、以及音頻播放無失真。
是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀 取存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等。
還可以理解的是,附圖或?qū)嵤├兴镜难b置結(jié)構(gòu)僅僅是示意性的,表 示邏輯結(jié)構(gòu)。其中作為分離部件顯示的模塊可能是或者可能不是物理上分開 的,作為模塊顯示的部件可能是或者可能不是物理模塊。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤 飾,這些改進(jìn)和潤飾也應(yīng)S見為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種音頻快速播放方法,其特征在于,包括根據(jù)接收的用戶操作信息解析出的音頻播放請求,調(diào)用音頻播放程序;所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中;所述音頻播放控制器根據(jù)寫入的音頻數(shù)據(jù)生成數(shù)據(jù)幀傳送到音頻播放裝置,所述音頻播放裝置根據(jù)接收的數(shù)據(jù)幀進(jìn)行音頻播放。
2、 如權(quán)利要求l所述的方法,其特征在于,所述音頻數(shù)據(jù)數(shù)組中的音頻 數(shù)據(jù)是預(yù)先根據(jù)要播放的音頻文件中的信息以設(shè)定采樣率進(jìn)行轉(zhuǎn)換的;所述 特定速率根據(jù)所述采樣率確定。
3、 如權(quán)利要求l所述的方法,其特征在于,所述音頻播》文程序?qū)⒁纛l數(shù) 據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存 器中,具體包括所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)通過直接內(nèi)存存儲 DMA控制器寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中,在每次延時(shí)函數(shù)的 延時(shí)時(shí)間到達(dá)時(shí),所述DMA控制器向音頻播放控制器的音頻數(shù)據(jù)寄存器寫入 一個(gè)音頻數(shù)據(jù);所述系統(tǒng)延時(shí)函數(shù)的延時(shí)時(shí)間根據(jù)所述速率確定。
4、 如權(quán)利要求1所述的方法,其特征在于,所述音頻播放程序?qū)⒁纛l數(shù) 據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到音頻播;改控制器的音頻數(shù)據(jù)寄存 器中,具體包括在每次延時(shí)函數(shù)的延時(shí)時(shí)間到達(dá)時(shí),所述音頻播放程序直接向音頻播放 控制器的音頻數(shù)據(jù)寄存器寫入一個(gè)音頻數(shù)據(jù);所述延時(shí)函數(shù)的延時(shí)時(shí)間根據(jù) 所述速率確定。
5、 如權(quán)利要求l所述的方法,其特征在于,在調(diào)用音頻播放程序之前, 還包括根據(jù)接收的用戶操作信息還解析出其它操作請求;以及 根據(jù)音頻播放請求調(diào)用音頻播放程序 一段時(shí)間后,再根據(jù)所述其它操作 請求進(jìn)行其它操作。
6、 如權(quán)利要求5所述的方法,其特征在于,所述用戶操作信息為點(diǎn)擊觸 摸屏按鍵操作信息、音頻播放請求為點(diǎn)屏音播放請求;以及所述在調(diào)用音頻播放程序一段時(shí)間后,再根據(jù)所述其它操作請求進(jìn)行其它操作,具體包括在接收到用戶操作信息中第m個(gè)按^:信號時(shí),調(diào)用音頻播放程序; 在接收到用戶操作信息中第w個(gè)按鍵信號時(shí),根據(jù)所述其它操作請求進(jìn)行其它操作;所述w小于w。
7、 如權(quán)利要求l所述的方法,其特征在于,在所述將音頻數(shù)據(jù)數(shù)組中的 音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器之前,還 包括所述音頻播放程序確定系統(tǒng)是否接有耳機(jī),如果是,則設(shè)置耳機(jī)聲音通 道;若否,則設(shè)置揚(yáng)聲器聲音通道。
8、 如權(quán)利要求l所述的方法,其特征在于,在所述將音頻數(shù)據(jù)數(shù)組中的 音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器之前,還 包括所述音頻播放程序?qū)⒁纛l播放控制器中的寄存器的值進(jìn)行保存;以及 在所有音頻數(shù)據(jù)寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器后,還包括 所述音頻播放程序?qū)⒈4娴募拇嫫髦抵匦聦懭氲揭纛l播放控制器中。
9、 一種音頻快速播放裝置,包括音頻播放控制器,用于根據(jù)接收的音頻數(shù)據(jù)生成數(shù)據(jù)幀并輸出; 音頻播放裝置,用于根據(jù)接收的數(shù)據(jù)幀進(jìn)行音頻播放; 操作信息解析模塊,用于根據(jù)接收的用戶操作信息解析出音頻播放請求; 音頻數(shù)據(jù)寫入模塊,用于根據(jù)解析出的音頻播放請求將音頻數(shù)據(jù)數(shù)組中 的音頻數(shù)據(jù)依次以特定速率寫入到所述音頻播放控制器的音頻數(shù)據(jù)寄存器 中。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述音頻凄t據(jù)數(shù)組中的音 頻數(shù)據(jù)是預(yù)先根據(jù)要播放的音頻文件中的信息以設(shè)定采樣率進(jìn)行轉(zhuǎn)換的;所 述特定速率根據(jù)所述采樣率確定。
11、 如權(quán)利要求9所述的裝置,其特征在于,所述操作信息解析模塊還用于根據(jù)接收的用戶操作信息還解析出其它操 作請求,并在輸出所述音頻播放請求一段時(shí)間后,再輸出其它才喿作請求。
全文摘要
本發(fā)明涉及多媒體播放領(lǐng)域,尤其涉及一種快速播放音頻的技術(shù)。一種音頻快速播放方法及裝置,包括根據(jù)接收的用戶操作信息解析出的音頻播放請求,調(diào)用音頻播放程序;所述音頻播放程序?qū)⒁纛l數(shù)據(jù)數(shù)組中的音頻數(shù)據(jù)依次以特定速率寫入到音頻播放控制器的音頻數(shù)據(jù)寄存器中;所述音頻播放控制器根據(jù)寫入的音頻數(shù)據(jù)生成數(shù)據(jù)幀傳送到音頻播放裝置,所述音頻播放裝置根據(jù)接收的數(shù)據(jù)幀通過音響設(shè)備進(jìn)行音頻播放。由于直接以一定速率向音頻播放控制器的音頻數(shù)據(jù)寄存器寫入音頻數(shù)據(jù),不必通過調(diào)用系統(tǒng)驅(qū)動程序來進(jìn)行打開音頻文件、進(jìn)行各種音頻播放參數(shù)的設(shè)置,從而縮短音頻開始播放的延時(shí)時(shí)間,達(dá)到快速播放音頻的目的。
文檔編號G11B20/10GK101364417SQ20081014931
公開日2009年2月11日 申請日期2008年9月17日 優(yōu)先權(quán)日2008年9月17日
發(fā)明者孫增國 申請人:青島海信移動通信技術(shù)股份有限公司