国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Linux聲音系統(tǒng)

2019-11-09 16:46:07
字體:
供稿:網(wǎng)友

原文地址::http://www.cnblogs.com/jiqingwu/p/linux_sound_system.html

相關(guān)文章

1、Linux下的聲音編程方法----http://blog.csdn.net/liuchao35758600/article/details/6880910

2、讓LINUX發(fā)出聲音----http://xghe110.blog.51cto.com/337884/65713/

3、Linux下?lián)P聲器發(fā)聲的小程序----http://www.2cto.com/kf/200609/12832.html

Linux聲音系統(tǒng)有些混亂,它有三套音頻驅(qū)動(dòng): OSS (Open Sound System), 商業(yè)版的OSS,和ALSA (Advanced Linux Sound Architechture)。 所以底層驅(qū)動(dòng)有OSS和ALSA兩套API。

一、聲卡的工作原理

音頻驅(qū)動(dòng)的主要作用是驅(qū)動(dòng)聲卡工作,所以也叫聲卡驅(qū)動(dòng)。 聲卡的主要作用是完成數(shù)模轉(zhuǎn)換。 當(dāng)電腦播放聲音時(shí),將數(shù)字?jǐn)?shù)據(jù)送到聲卡,由聲卡轉(zhuǎn)換成模擬數(shù)據(jù)給揚(yáng)聲器等外放設(shè)備。 當(dāng)錄音時(shí),聲卡將從麥克風(fēng)送來的模擬數(shù)據(jù)采樣成數(shù)字?jǐn)?shù)據(jù),送給計(jì)算機(jī)處理。

二、Linux音頻驅(qū)動(dòng)

早期的Linux音頻驅(qū)動(dòng)是OSS (Open Sound System), 但ALSA (Advanced Linux Sound Architechture)后來居上, 大有完全取代OSS的趨勢。

Linux都是通過設(shè)備文件訪問外部設(shè)備, ALSA和OSS有不同的設(shè)備文件。

+----------+--------------+--------------------+---------+|設(shè)備類型  |    OSS       |  ALSA              | 備注    |+----------+--------------+--------------------+---------+|聲音采樣  |   /dev/dsp0  | /dev/snd/pcmC0D0   |         |+----------+--------------+--------------------+---------+| 混音器   |  /dev/mixer0 | /dev/snd/mixerC0D0 | 控制音量|+----------+--------------+--------------------+---------+|高層音序器|  /dev/music0 |    N/A             | MIDI支持|+----------+--------------+--------------------+---------+|低層音序器|  /dev/midi0  |    N/A             | MIDI支持|+----------+--------------+--------------------+---------+|聲音狀態(tài)  |  /dev/sndstat|    N/A             |         |+----------+--------------+--------------------+---------+|控制文件  |   N/A        | /dev/snd/controlC0 |         |+----------+--------------+--------------------+---------+

ALSA提供了和OSS不同的API,因此如果你使用ALSA做音頻驅(qū)動(dòng), 一些通過OSS操作聲音的程序?qū)⒉荒苷0l(fā)聲。

為了解決這一問題,ALSA提供了兼容OSS的庫, 因此,如果你使用 ALSA 驅(qū)動(dòng)聲卡,也安裝了兼容OSS的庫, 那些使用OSS API的程序也能正常工作。

三、應(yīng)用程序和聲卡驅(qū)動(dòng)的交互方式

直接和底層聲音驅(qū)動(dòng)打交道

有一些應(yīng)用程序直接和最底層的聲音驅(qū)動(dòng)(OSS或ALSA)打交道, 程序內(nèi)部直接調(diào)用 OSS 或 ALSA 的API。

通過聲音服務(wù)器

聲音服務(wù)器介于應(yīng)用程序和聲卡驅(qū)動(dòng)之間。 當(dāng)不同的應(yīng)用調(diào)用聲音服務(wù)器的API來播放聲音時(shí),它們把音頻數(shù)據(jù)送到服務(wù)器, 服務(wù)器將一個(gè)以上的播放請求混音后,再發(fā)送給底層的聲卡驅(qū)動(dòng)(ALSA或OSS)。 由ALSA或OSS來驅(qū)動(dòng)聲卡播放混音后的數(shù)據(jù)。 基于ESD開發(fā)音頻程序的好處有:(1)簡化開發(fā)。(2)即使底層驅(qū)動(dòng)不支持多線程, 通過聲音服務(wù)器也能實(shí)現(xiàn)多個(gè)應(yīng)用程序同時(shí)發(fā)聲。(3)有更好的音效。

ESD ESD 一直是 Gnome 桌面環(huán)境的聲音服務(wù)器, Gnome 應(yīng)用多是通過 ESD 處理聲音的。aRts 和 ESD 對應(yīng),aRts 是 KDE 桌面環(huán)境的聲音服務(wù)器, 底層通過 ALSA 驅(qū)動(dòng)聲卡。KDE 應(yīng)用多通過 aRts 處理聲音。PulseAudio PulseAudio是新一代聲音服務(wù)器,能提供更好的音效, 已經(jīng)有越來越多的應(yīng)用通過PulseAudio處理聲音。 為了讓使用ESD的程序能繼續(xù)在PulseAudio 上工作, PulseAudio 提供了 ESD 的兼容層。 Gnome 未來將采用PulseAudio取代ESD。

通過其它庫

除了聲音服務(wù)器,為了簡化開發(fā),還出現(xiàn)了其它的一些聲音庫。 這些聲音庫有的和聲音服務(wù)器打交道,有的直接和最底層的聲音驅(qū)動(dòng)(OSS或ALSA)打交道。 比如游戲程序使用的SDL庫,就是直接和聲音驅(qū)動(dòng)打交道。

四、總結(jié)

Linux從應(yīng)用程序到聲音驅(qū)動(dòng)的結(jié)構(gòu)如下圖所示。

   +-------+  +------+     +-----+  +-----+ +----+   | Apps  |  | Apps |     |Apps |  |Apps | |Apps|   +---+---+  +---+--+     +--+--+  +--+--+ +-+--+       |          |           |        |      |   +---+---+  +---+------+  +-+--+  +--+--+   |   | ESD   |  |PulseAudio|  |aRts|  |Other|   |   | Gnome |  |ESD compat|  |KDE |  | SDL |   |   +---+---+  +----+-----+  +-+--+  +--+--+   |       |           |          |        |      |   +---+-----------+----------+--------+------+---+   | ALSA (Advanced Linux Sound Architechture)    |   |    OSS (Open Sound System)                   |   +----------------------------------------------+
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 左云县| 赤城县| 和林格尔县| 台北县| 墨竹工卡县| 凤冈县| 兴海县| 科技| 丹凤县| 嵊泗县| 古蔺县| 高雄市| 永川市| 芜湖县| 锦屏县| 迁西县| 商丘市| 南阳市| 西平县| 兖州市| 永定县| 阿克| 鹤山市| 武城县| 长兴县| 商丘市| 汨罗市| 公主岭市| 津南区| 新安县| 晋宁县| 海门市| 泗水县| 大同县| 普兰县| 阳信县| 文登市| 婺源县| 沂水县| 来凤县| 龙里县|