999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

移動(dòng)操作系統(tǒng)音頻單元設(shè)計(jì)

2017-03-06 17:33:36王佩光操李節(jié)
計(jì)算機(jī)時(shí)代 2017年2期
關(guān)鍵詞:功能系統(tǒng)

王佩光+操李節(jié)

摘 要: 介紹一種移動(dòng)操作系統(tǒng)音頻模塊設(shè)計(jì)實(shí)現(xiàn)方法。該音頻模塊采用開(kāi)源項(xiàng)目PulseAudio作為音頻處理單元,用ALSA與底層硬件交互,由AudioManager提供API供上層應(yīng)用調(diào)用,實(shí)現(xiàn)操作系統(tǒng)的音頻通路切換與音量調(diào)節(jié)等功能。文章首先介紹音頻系統(tǒng)架構(gòu),然后從音頻控制單元AudioManager出發(fā),詳細(xì)介紹系統(tǒng)音頻分類以及AudioManager提供給上層調(diào)用的方法,最后介紹音頻通路與音量調(diào)節(jié)的實(shí)現(xiàn)。

關(guān)鍵詞: 移動(dòng)操作系統(tǒng); 音頻模塊; AudioManager; 通路切換; 音量調(diào)節(jié)

中圖分類號(hào):TP316 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)02-01-04

0 引言

音頻系統(tǒng)是移動(dòng)操作系統(tǒng)不可或缺的子系統(tǒng)之一,它負(fù)責(zé)處理所有與聲音相關(guān)的信息,隨著移動(dòng)操作系統(tǒng)功能設(shè)計(jì)的越來(lái)越全面和人性化,對(duì)音頻的精準(zhǔn)控制提出了更高的要求,例如不同情況下不同的輸出方式以及不同模式下的音量調(diào)節(jié)互不影響。這就對(duì)音頻系統(tǒng)的功能提出了更高的要求。android系統(tǒng)的音頻子系統(tǒng)是一款成熟的音頻系統(tǒng)[1-3],谷歌公司為它的音頻系統(tǒng)設(shè)計(jì)了一套全局音頻管理器——AudioFinger,并精簡(jiǎn)了ALSA來(lái)與硬件交互。本文所涉及的移動(dòng)操作系統(tǒng)采用開(kāi)源項(xiàng)目pulseaudio作為音頻處理單元,并采用ALSA與硬件交互[4-5]。

PulseAudio[6]是一個(gè)跨平臺(tái)的,可通過(guò)網(wǎng)絡(luò)工作的聲音服務(wù),它的主要特點(diǎn)包括[7]:

⑴ 可對(duì)每一個(gè)應(yīng)用程序進(jìn)行音量控制;

⑵ 可擴(kuò)展的插件與支持可裝載模塊架構(gòu);

⑶ 兼容性許多流行的音頻應(yīng)用程序;

⑷ 支持多重音源和多重輸出;

⑸ 低延時(shí)操作和支持延遲測(cè)量;

⑹ 一個(gè)對(duì)處理器資源效率零拷貝內(nèi)存架構(gòu);

⑺ 能夠發(fā)現(xiàn)本地網(wǎng)絡(luò)上使用PulseAudio的其他計(jì)算機(jī)并通過(guò)其揚(yáng)聲器直接播放聲音;

⑻ 能夠改變一個(gè)應(yīng)用程序的聲音輸出設(shè)備,就算這個(gè)應(yīng)用程序在播放聲音(程序不需要支持這個(gè)特性,而事實(shí)上,程序甚至沒(méi)有意識(shí)到改變);

⑼ 帶有腳本功能的命令行界面;

⑽ 一個(gè)功能完善且?guī)в忻钚兄匦屡渲霉δ艿氖刈o(hù)進(jìn)程;

⑾ 內(nèi)置采樣轉(zhuǎn)換和重采樣功能;

⑿ 能夠合并多塊聲卡成一個(gè)聲卡;

⒀ 能夠同步播放多個(gè)音頻流;

⒁ 動(dòng)態(tài)檢測(cè)藍(lán)牙音頻設(shè)備;

⒂ 使全系統(tǒng)均衡的能力。

1 系統(tǒng)架構(gòu)

安卓音頻系統(tǒng)架構(gòu)從上到下可以分為5層,從上到下分別:Application、Framework、Libraries、HAL、Linux Kernel。Application為運(yùn)行在最上層的各種應(yīng)用,F(xiàn)ramework是對(duì)Libraries的封裝,為上層Application的開(kāi)發(fā)提供標(biāo)準(zhǔn)接口,Libraries是整個(gè)系統(tǒng)的核心,負(fù)責(zé)完成音頻的控制與處理。本文涉及的音頻系統(tǒng)在層級(jí)上與android系統(tǒng)大同小異,同樣分為Application、Framework、Libraries、HAL、Linux Kernel這幾層,但在Framework、Libraries擁有不同的實(shí)現(xiàn)方式,具體架構(gòu)見(jiàn)圖1。

⑴ Framework

Framework層提供兩個(gè)模塊,分別為AudioManager模塊與Ngfd模塊。

AudioManager模塊的設(shè)計(jì)思想源于android系統(tǒng)的AudioManager類,本系統(tǒng)的AudioManager模塊提供了一系列與音量控制相關(guān)的方法供上層應(yīng)用調(diào)用,以方便應(yīng)用程序控制音量。AudioManager又分為三個(gè)模塊:Volume、Route、Profile,這三個(gè)模塊分別負(fù)責(zé)音量調(diào)節(jié)、通路以及策略。AudioManager模塊最終都是通過(guò)調(diào)用PulseAudio接口來(lái)實(shí)現(xiàn)對(duì)音量的控制。Ngfd模塊提供與振動(dòng)相關(guān)的接口供上層應(yīng)用調(diào)用。

⑵ Libraries

Libraries層提供兩個(gè)模塊,分別為PulseAudio和Profiled,其中PulseAudio為開(kāi)源項(xiàng)目,提供音頻控制相關(guān)方法,PulseAudio具體實(shí)現(xiàn)方式本文不做探究,Profiled負(fù)責(zé)提供音頻策略。

2 AndroidManager方法說(shuō)明

移動(dòng)操作系統(tǒng)一般具有多種不同類型的音頻,例如:鈴聲、通知、鬧鐘、短消息等等,所以這需求音頻系統(tǒng)能夠?qū)Σ煌愋偷囊纛l分別進(jìn)行設(shè)置,為此,本文將音頻分為如下7種類型(role),放在一個(gè)枚舉類型中:

AudioManager控制整個(gè)音頻系統(tǒng)由一系列的方法來(lái)完成,每種方法具有自己獨(dú)特的功能,在本文所設(shè)計(jì)的音頻系統(tǒng)中,將方法歸結(jié)為16種,每種方法的介紹與實(shí)現(xiàn)如下。

⑴ Audio Role

AM_ROLE_TYPE getActiveRole()——返回當(dāng)前活動(dòng)的Role,其取值是AM_ROLE_TYPE枚舉類型。

⑵ 音量控制

int getVolume(AM_ROLE_TYPE role)——返回指定Role的當(dāng)前音量,其取值范圍為0~100。輸入?yún)?shù)為Role,其取值A(chǔ)M_ROLE_TYPE枚舉類型。

void setVolume(AM_ROLE_TYPE role, int volume)——設(shè)置指定Role的當(dāng)前音量,其取值范圍為0~100。

⑶ 音量調(diào)節(jié)

void adjustVolume(AM_ROLE_TYPE role, AM_ADJUST_DIRECTION direction)——側(cè)鍵設(shè)置音量的接口,其輸入?yún)?shù)除了Role外,還有一個(gè)用于指導(dǎo)操作的參數(shù)direction,其取值為ADJUST_LOWER,ADJUST_RAISE和ADJUST_SAME三者之一。目前系統(tǒng)的步長(zhǎng)音量分為12級(jí)。

本文所述音頻系統(tǒng)借鑒android系統(tǒng)的分層架構(gòu),采用PulseAudio作為音頻處理單元,完成了音頻策略制定、情景模式切換以及音量調(diào)節(jié)功能,并提供API供上層開(kāi)發(fā)人員調(diào)用。本音頻系統(tǒng)劃分了多種音頻類型,并制定了多種音頻通路,能滿足操作系統(tǒng)多樣化的音頻調(diào)節(jié)功能需求,但由于有時(shí)需要快速地在靜音、振動(dòng)與正常三種模式之間切換,所以本音頻系統(tǒng)加入了情景模式切換功能,用戶能更便捷的在這三種模式中切換。

參考文獻(xiàn)(References):

[1] 楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].機(jī)械工業(yè)出版社,2010.

[2] 王波濤.移動(dòng)多媒體技術(shù)介紹[M].機(jī)械工業(yè)出版社,2011.

[3] 韓超,梁泉.Android系統(tǒng)級(jí)深入開(kāi)發(fā)——移植與調(diào)試[M].電

子工業(yè)出版社,2010.

[4] 姚昱旻,劉衛(wèi)國(guó).Android的架構(gòu)與應(yīng)用開(kāi)發(fā)研究[J].計(jì)算機(jī)系

統(tǒng)應(yīng)用,2008.11:24,110-112

[5] 李楊,馮剛,李亮,羅擁華.基于Android的多媒體應(yīng)用開(kāi)發(fā)與

研究[J].計(jì)算機(jī)與現(xiàn)代化,2011.4:149-152

[6] https://wiki.archlinux.org/index.php/PulseAudio,archlinux

[7] http://www.oschina.net/p/pulseaudio,開(kāi)源中國(guó),2009.

猜你喜歡
功能系統(tǒng)
也談詩(shī)的“功能”
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于非首都功能疏解的幾點(diǎn)思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡(jiǎn)直”和“幾乎”的表達(dá)功能
主站蜘蛛池模板: 色综合婷婷| 欧美另类精品一区二区三区| 日韩免费成人| 国产一区二区网站| 综合五月天网| 国产不卡一级毛片视频| 亚洲欧美在线看片AI| 91福利免费视频| 国产在线麻豆波多野结衣| 亚洲天堂网在线视频| 欧美一区日韩一区中文字幕页| 国产一区二区丝袜高跟鞋| 国产一在线观看| 国产成人你懂的在线观看| 在线观看av永久| 高清免费毛片| 久久综合色视频| 毛片大全免费观看| 另类欧美日韩| 精品视频一区二区观看| aaa国产一级毛片| 国产精品嫩草影院av| 精品久久777| 亚洲欧州色色免费AV| 天堂岛国av无码免费无禁网站| 国产精彩视频在线观看| 国产成人精品男人的天堂下载| 亚洲综合九九| 99爱在线| 专干老肥熟女视频网站| 9啪在线视频| 国产精品蜜芽在线观看| 国产成人久视频免费| 欧美综合激情| 欧美另类图片视频无弹跳第一页| 91视频精品| 国产国产人在线成免费视频狼人色| 自慰高潮喷白浆在线观看| 日韩第一页在线| 国产粉嫩粉嫩的18在线播放91| 国产欧美日韩精品第二区| 国产一区二区精品高清在线观看| 久久精品亚洲专区| 久久美女精品| 亚洲欧美精品一中文字幕| 97在线观看视频免费| 国模沟沟一区二区三区| 色综合久久88色综合天天提莫| 亚洲一区波多野结衣二区三区| 亚洲色无码专线精品观看| 国产乱人免费视频| 天天综合色网| 欧美不卡视频在线观看| 国产福利不卡视频| 亚洲日本www| 国产白浆视频| 日韩高清在线观看不卡一区二区| 大陆精大陆国产国语精品1024| 国产剧情一区二区| 国产亚洲精品无码专| 国产精品lululu在线观看| 久久久久国色AV免费观看性色| 在线看国产精品| 亚洲天堂视频在线观看| 99热最新网址| 免费va国产在线观看| 亚洲日韩精品无码专区97| 中文字幕无线码一区| 午夜高清国产拍精品| 欧美日韩动态图| 中文字幕 91| 波多野结衣无码视频在线观看| 亚洲免费成人网| 国产成人亚洲精品蜜芽影院| 亚洲欧美不卡中文字幕| 亚洲国产亚洲综合在线尤物| 她的性爱视频| 国产精品嫩草影院av| 久久精品丝袜| 国产电话自拍伊人| 国产精品永久在线| jijzzizz老师出水喷水喷出|