新聞中心
Linux作為一個(gè)開(kāi)源的操作系統(tǒng),一直以來(lái)備受好評(píng)。在Linux中使用音樂(lè)播放器是一種常見(jiàn)的需求。但是,當(dāng)我們?cè)贚inux中使用音樂(lè)播放器時(shí),會(huì)遇到一個(gè)很常見(jiàn)的問(wèn)題:聲音僅從耳機(jī)中播放,而不是外放。這可能會(huì)給用戶(hù)帶來(lái)很大的困擾,因?yàn)樗麄冎荒茉跊](méi)有其他人的情況下聽(tīng)音樂(lè),除非他們購(gòu)買(mǎi)一臺(tái)外置音響。但是不用著急,Linux系統(tǒng)可以通過(guò)簡(jiǎn)單的步驟來(lái)解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元鐘樓做網(wǎng)站,已為上家服務(wù),為鐘樓各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108
步驟1: 安裝Pulseaudio音頻管理器(如果沒(méi)有安裝的話(huà))
在Linux中,聲音管理器是用于管理、控制和配置系統(tǒng)中所有聲音設(shè)備的工具。因此,為了使音頻外放,需要安裝一個(gè)名為 Pulseaudio 的音頻管理器。要安裝此工具,請(qǐng)打開(kāi)終端并運(yùn)行以下命令。
“`
sudo apt-get install pulseaudio
“`
步驟2: 刪除配置文件
如果您的Linux系統(tǒng)上運(yùn)行了Pulseaudio,但仍然無(wú)法從揚(yáng)聲器中播放聲音,則可以嘗試刪除Pulseaudio配置文件并重新啟動(dòng)系統(tǒng)。要?jiǎng)h除配置文件,請(qǐng)打開(kāi)終端并輸入以下命令:
“`
rm -r ~/.config/pulse/
“`
此命令將刪除所有存儲(chǔ)在“~/.config/pulse/”中的Pulseaudio配置文件。
步驟3: 重啟Pulseaudio
重啟Pulseaudio也可能解決問(wèn)題。在終端中運(yùn)行以下命令:
“`
pulseaudio -k && pulseaudio –start
“`
這將關(guān)閉Pulseaudio并啟動(dòng)它。
步驟4: 確認(rèn)輸出設(shè)置
檢查是否已將您的音頻輸出設(shè)置為揚(yáng)聲器。要檢查,請(qǐng)按以下步驟操作。
1. 單擊系統(tǒng)設(shè)置。
2. 單擊聲音選項(xiàng)卡。
3. 確認(rèn)輸出選項(xiàng)是否設(shè)置為揚(yáng)聲器。
步驟5: 打開(kāi)Pavucontrol
如果上述步驟無(wú)效,則可以嘗試打開(kāi)Pavucontrol來(lái)設(shè)置揚(yáng)聲器。Pavucontrol是一種可用于更好地管理和控制聲音在Linux中的軟件。
要安裝Pavucontrol,請(qǐng)輸入以下命令:
“`
sudo apt-get install pavucontrol
“`
然后,要打開(kāi)Pavucontrol,請(qǐng)?jiān)诮K端中輸入以下命令:
“`
pavucontrol &
“`
在Pavucontrol中,單擊“配置”選項(xiàng)卡,然后確認(rèn)“內(nèi)置音頻”是否選中,并將“音頻輸出”設(shè)為揚(yáng)聲器。確保單擊“將所有流路設(shè)為”應(yīng)用程序之前的按鈕,以使這些更改永久生效。
在本文中,我們介紹了如何將Linux系統(tǒng)中的聲音設(shè)置為外放來(lái)完成音樂(lè)播放。盡管在Linux中設(shè)置聲音可能需要一點(diǎn)調(diào)整,但是Linux并不是非常難使用。只要查看系統(tǒng)設(shè)置和Pavucontrol,使用者就可以很快地更改設(shè)置。希望這篇文章可以幫助那些在Linux中使用音樂(lè)播放器時(shí)無(wú)法將聲音設(shè)置為外放的人。
相關(guān)問(wèn)題拓展閱讀:
- 為啥Linux系統(tǒng)插上耳機(jī)有聲音,拔掉耳機(jī)就沒(méi)有聲音,而XP系統(tǒng)就有聲音!
- 請(qǐng)教Linux下ALSA聲道切換
為啥Linux系統(tǒng)插上耳機(jī)有聲音,拔掉耳機(jī)就沒(méi)有聲音,而XP系統(tǒng)就有聲音!
聲卡支持的問(wèn)題。這個(gè)只能靠升級(jí)系統(tǒng)解決。
你這個(gè)問(wèn)題應(yīng)該是驅(qū)動(dòng)沒(méi)有很好的解決聲卡的 codec ,導(dǎo)致沒(méi)有正確識(shí)別聲卡的輸出端口方式。導(dǎo)致李鏈只能使用聲卡的耳機(jī)輸出端口而不是機(jī)器的喇叭輸出端口。
Linux 的聲哪冊(cè)孫卡驅(qū)動(dòng)統(tǒng)一由 alsa 提供。alsa 已經(jīng)被內(nèi)置進(jìn)了內(nèi)核。
如果樓主的系統(tǒng)不是很新,那么升級(jí)系統(tǒng)或許可以解決。如果不行,那就只能自己升級(jí)內(nèi)核了。如果還不行,那就只能去升級(jí)使用外掛最新版的 alsa 了。
另外,有的驅(qū)動(dòng)可以通過(guò)設(shè)置 codec 型號(hào)給驅(qū)動(dòng)來(lái)提供支持或者更改默認(rèn)的輸姿旅出端口。
不過(guò)這都需要足夠的技術(shù)。
根據(jù)你的linux系統(tǒng),在設(shè)置中找聲音設(shè)置,然后選不同的模式試試。
系統(tǒng)設(shè)置問(wèn)題
請(qǐng)教Linux下ALSA聲道切換
解各參數(shù)含義及些基本概念
本度(sample):本記錄音頻數(shù)據(jù)基本單位見(jiàn)8位16位
通道數(shù)(channel):該參數(shù)1表示單聲道2則立體聲
楨(frame):楨記錄聲音單元其度本度與通道數(shù)乘積
采率(rate):每秒鐘采數(shù)該數(shù)針楨言
周期(period):音頻設(shè)備處理所需要楨數(shù)于音頻設(shè)備數(shù)據(jù)訪問(wèn)及音頻數(shù)據(jù)存儲(chǔ)都單位
交錯(cuò)模式(interleaved):種音頻數(shù)據(jù)記錄式交錯(cuò)模式數(shù)據(jù)連續(xù)楨形式存放即首先記錄完楨1左聲道本右聲道本(假設(shè)立體聲格式)再始楨2記錄非交錯(cuò)模式首先記錄周期內(nèi)所楨左聲道本再記錄右聲道本數(shù)據(jù)連續(xù)通道式存儲(chǔ)數(shù)情況我需要使用交錯(cuò)模式
period(周期):硬件斷間間隔間表示輸入延
聲卡接口指針指示聲卡硬件緩存區(qū)前讀寫(xiě)位置要接口運(yùn)行指針循環(huán)指向緩存區(qū)某位置
frame size = sizeof(one sample) * nChannels
alsa配置緩存(buffer)周期(size)runtime幀(frames)形式存儲(chǔ)
period_bytes = frames_to_bytes(runtime, runtime->period_size);
bytes_to_frames()
The period and buffer sizes are not dependent on the sample format because they are measured in frames; you do not need to change them.
ALSA聲音編程介紹
ALSA表示高級(jí)Linux聲音體系結(jié)構(gòu)(Advanced Linux Sound Architecture)由系薯衫列內(nèi)核驅(qū)應(yīng)用程序編譯接口(API)及支持Linux聲音實(shí)用程序組篇文章我簡(jiǎn)單介紹ALSA項(xiàng)目基本框架及軟件組主要集介紹PCM接口編程包括您自實(shí)踐程序示例
您使用ALSA原能新并唯用聲音API您想完低級(jí)聲音操作便能夠化控制聲音并化提高性能或者您使用其聲音API沒(méi)特性ALSA選擇您已經(jīng)寫(xiě)音頻程序能想要ALSA聲卡驅(qū)添加本支持您音頻興趣想播放音頻文件高級(jí)API更選擇比SDL,OpenAL及些桌面環(huán)境提供工具集另外您能ALSA支持Linux環(huán)境使用ALSA
ALSA歷史
ALSA項(xiàng)目發(fā)起起Linux聲卡驅(qū)(OSS/Free drivers)沒(méi)積極維護(hù)并且落于新聲卡技術(shù)Jaroslav Kysela早先寫(xiě)聲卡驅(qū)并由始ALSA項(xiàng)目隨便更發(fā)者加入發(fā)隊(duì)伍更聲卡支持API結(jié)構(gòu)重組
Linux內(nèi)核2.5發(fā)程ALSA合并官源碼樹(shù)發(fā)布內(nèi)核2.6ALSA已經(jīng)內(nèi)建穩(wěn)定內(nèi)核版本并廣泛使用
數(shù)字音頻基礎(chǔ)
聲音由變化氣壓組麥克風(fēng)轉(zhuǎn)換器轉(zhuǎn)換電形式模/數(shù)(ADC)轉(zhuǎn)換器模擬電壓轉(zhuǎn)換離散本值聲音固定間間隔采采速率稱(chēng)采率本輸數(shù)/模(DAC)轉(zhuǎn)換器比擴(kuò)音器轉(zhuǎn)換原模擬信號(hào)
本位表示本影響聲音轉(zhuǎn)換數(shù)字信號(hào)精確程度素另主要素采率奈奎斯特(Nyquist)理論要離散系統(tǒng)奈奎斯特頻率高于采信號(hào)高頻率或帶寬避免混疊現(xiàn)象
ALSA基礎(chǔ)
ALSA由許聲卡聲卡驅(qū)程序組同提供稱(chēng)libasoundAPI庫(kù)應(yīng)用程序發(fā)者應(yīng)該使用libasound內(nèi)核ALSA接口libasound提供數(shù)如腔橡消高級(jí)并且編程便編程接口并且提供設(shè)備邏輯命名功能發(fā)者甚至需要知道類(lèi)似設(shè)備文件低層接口相反OSS/Free驅(qū)內(nèi)核系統(tǒng)調(diào)用級(jí)編程要求發(fā)者提供設(shè)備文件名并且利用ioctrl實(shí)現(xiàn)相應(yīng)功能向兼容ALSA提供內(nèi)核模塊模擬OSS前許OSS基礎(chǔ)發(fā)應(yīng)用程序需要任何改ALSA運(yùn)行另外libaoss庫(kù)模擬OSS需要內(nèi)核模塊
ALSA包含插件功能使用插件擴(kuò)展新聲卡驅(qū)包括完全用軟件實(shí)現(xiàn)虛擬聲卡ALSA提供系列基于命令行工具集比混音器(mixer)音頻文件播放器(aplay)及控制特定聲卡特定屬性工具
ALSA體系結(jié)構(gòu)
ALSA API解幾主要接口:
1 控制接口:提供管理聲卡注冊(cè)請(qǐng)求用設(shè)備通用功能
2 PCM接口:管理數(shù)字音頻放(playback)錄音(capture)接口本文續(xù)總結(jié)重點(diǎn)放接口發(fā)數(shù)字音頻程序用接口
3 Raw MIDI接口:支持MIDI(Musical Instrument Digital Interface),標(biāo)準(zhǔn)電樂(lè)器些API提供聲卡MIDI總線(xiàn)訪問(wèn)原始接口基于MIDI事件工作由程序員負(fù)責(zé)管理協(xié)議及間處理
4 定器(Timer)接口:同步音頻事件提供聲卡間處理硬件訪問(wèn)
5 序器(Sequencer)接口
6 混音器(Mixer)接口
設(shè)備命名
API庫(kù)使用邏輯設(shè)備名設(shè)備文件設(shè)備名字真實(shí)硬件名字插件名字硬件名字使用hw:i,j格式其i卡號(hào)j塊聲卡設(shè)備號(hào)第聲音設(shè)備hw:0,0.別名默認(rèn)引用第塊聲音設(shè)備并且本文示例真用插件使用另外唯名字比plughw:,表示插件插件提供硬件設(shè)備訪問(wèn)提供像采率轉(zhuǎn)換軟件特性硬件本身并支持特性
聲音緩存數(shù)據(jù)傳輸
每聲卡都硬件緩存區(qū)保存記錄本緩存區(qū)足夠滿(mǎn)聲卡產(chǎn)斷內(nèi)核聲卡驅(qū)使用直接內(nèi)存(DMA)訪問(wèn)通道本傳送內(nèi)存應(yīng)用程序緩存區(qū)類(lèi)似于放任何應(yīng)用程序使用DMA自緩存區(qū)數(shù)據(jù)傳送聲卡硬件緩存區(qū)
硬件緩存區(qū)環(huán)緩存說(shuō)數(shù)據(jù)達(dá)緩存區(qū)末尾重新緩存區(qū)起始位置ALSA維護(hù)指針指向硬件緩存及應(yīng)用程序緩存區(qū)數(shù)據(jù)操作前位置內(nèi)核外部看我應(yīng)用程序緩存區(qū)興趣所本文討論應(yīng)用程序緩存區(qū)
應(yīng)用程序緩存區(qū)通ALSA庫(kù)函數(shù)調(diào)用控制緩存區(qū)傳輸操作能導(dǎo)致接受延遲我稱(chēng)延(latency)解決問(wèn)題ALSA緩存區(qū)拆系列周期(period)(OSS/Free叫片斷fragments).ALSAperiod單元傳送數(shù)據(jù)
周期(period)存儲(chǔ)些幀(frames)每幀包含間點(diǎn)所抓取本于立體聲設(shè)備幀包含兩信道本圖1展示解程:緩存區(qū)解周期幀本圖包含些假定數(shù)值圖左右信道信息交替存儲(chǔ)幀內(nèi)稱(chēng)交錯(cuò)(interleaved)模式非交錯(cuò)模式信道所本數(shù)據(jù)存儲(chǔ)另外信道數(shù)據(jù)
Over and Under Run
聲卡數(shù)據(jù)總連續(xù)硬件緩存區(qū)應(yīng)用程序緩存區(qū)間傳輸例外錄音例應(yīng)用程序讀取數(shù)據(jù)夠快循環(huán)緩存區(qū)新數(shù)據(jù)覆蓋種數(shù)據(jù)丟失稱(chēng)overrun.放例應(yīng)用程序?qū)懭霐?shù)據(jù)緩存區(qū)速度夠快緩存區(qū)”餓死”錯(cuò)誤稱(chēng)”underrun”ALSA文檔兩種情形統(tǒng)稱(chēng)”XRUN”適設(shè)計(jì)應(yīng)用程序化XRUN并且恢復(fù)
典型聲音程序
使用PCM程序通類(lèi)似面?zhèn)未a:
打放或錄音接口
設(shè)置硬件參數(shù)(訪問(wèn)模式數(shù)據(jù)格式信道數(shù)采率等等)
while 數(shù)據(jù)要處理:
讀PCM數(shù)據(jù)(錄音)
或 寫(xiě)PCM數(shù)據(jù)(放)
關(guān)閉接口
我文看些工作代碼我建議您Linux系統(tǒng)測(cè)試運(yùn)行些代碼查看輸并嘗試修改推薦代碼本文相關(guān)所實(shí)例清單FTP獲?。篺tp.ssc.com/pub/lj/listings/issue126/6735.tgz
Listing 1. Display Some PCM Types and Formats
#include asoundlib.h>
int main() {
int val;
printf(“ALSA library version: %s/n”,
SND_LIB_VERSION_STR);
printf(“/nPCM stream types:/n”);
for (val = 0; val
int main() {
int rc;
snd_pcm_t *handle;
snd_pcm_hw_params_t *params;
unsigned int val, val2;
int dir;
snd_pcm_uframes_t frames;
/* Open PCM device for playback. */
rc = snd_pcm_open(&handle, “default”,
SND_PCM_STREAM_PLAYBACK, 0);
if (rc
fprintf(stderr,
“unable to open pcm device: %s/n”,
snd_strerror(rc));
exit(1);
}
/* Allocate a hardware parameters object. */
snd_pcm_hw_params_alloca(?ms);
/* Fill it in with default values. */
snd_pcm_hw_params_any(handle, params);
/* Set the desired hardware parameters. */
/* Interleaved mode */
snd_pcm_hw_params_set_access(handle, params,
SND_PCM_ACCESS_RW_INTERLEAVED);
/* Signed 16-bit little-endian format */
snd_pcm_hw_params_set_format(handle, params,
SND_PCM_FORMAT_S16_LE);
/* Two channels (stereo) */
snd_pcm_hw_params_set_channels(handle, params, 2);
/*bits/second sampling rate (CD quality) */
val = 44100;
snd_pcm_hw_params_set_rate_near(handle,
params, &val, &dir);
/* Write the parameters to the driver */
rc = snd_pcm_hw_params(handle, params);
if (rc
fprintf(stderr,
“unable to set hw parameters: %s/n”,
snd_strerror(rc));
exit(1);
}
/* Display information about the PCM interface */
printf(“PCM handle name = ‘%s’/n”,
snd_pcm_name(handle));
printf(“PCM state = %s/n”,
snd_pcm_state_name(snd_pcm_state(handle)));
snd_pcm_hw_params_get_access(params,
(snd_pcm_access_t *) &val);
printf(“access type = %s/n”,
snd_pcm_access_name((snd_pcm_access_t)val));
snd_pcm_hw_params_get_format(params, &val);
printf(“format = ‘%s’ (%s)/n”,
snd_pcm_format_name((snd_pcm_format_t)val),
snd_pcm_format_description(
(snd_pcm_format_t)val));
snd_pcm_hw_params_get_subformat(params,
(snd_pcm_subformat_t *)&val);
printf(“subformat = ‘%s’ (%s)/n”,
snd_pcm_subformat_name((snd_pcm_subformat_t)val),
snd_pcm_subformat_description(
(snd_pcm_subformat_t)val));
snd_pcm_hw_params_get_channels(params, &val);
printf(“channels = %d/n”, val);
snd_pcm_hw_params_get_rate(params, &val, &dir);
printf(“rate = %d bps/n”, val);
snd_pcm_hw_params_get_period_time(params,
&val, &dir);
printf(“period time = %d us/n”, val);
snd_pcm_hw_params_get_period_size(params,
&frames, &dir);
printf(“period size = %d frames/n”, (int)frames);
snd_pcm_hw_params_get_buffer_time(params,
&val, &dir);
printf(“buffer time = %d us/n”, val);
snd_pcm_hw_params_get_buffer_size(params,
(snd_pcm_uframes_t *) &val);
printf(“buffer size = %d frames/n”, val);
snd_pcm_hw_params_get_periods(params, &val, &dir);
printf(“periods per buffer = %d frames/n”, val);
snd_pcm_hw_params_get_rate_numden(params,
&val, &val2);
printf(“exact rate = %d/%d bps/n”, val, val2);
val = snd_pcm_hw_params_get_its(params);
printf(“significant bits = %d/n”, val);
snd_pcm_hw_params_get_tick_time(params,
&val, &dir);
printf(“tick time = %d us/n”, val);
val = snd_pcm_hw_params_is_batch(params);
printf(“is batch = %d/n”, val);
val = snd_pcm_hw_params_is_block_transfer(params);
printf(“is block transfer = %d/n”, val);
val = snd_pcm_hw_params_is_double(params);
printf(“is double = %d/n”, val);
val = snd_pcm_hw_params_is_half_duplex(params);
printf(“is half duplex = %d/n”, val);
val = snd_pcm_hw_params_is_joint_duplex(params);
printf(“is joint duplex = %d/n”, val);
val = snd_pcm_hw_params_can_overrange(params);
printf(“can overrange = %d/n”, val);
val = snd_pcm_hw_params_can_mmap_sample_resolution(params);
printf(“can mmap = %d/n”, val);
val = snd_pcm_hw_params_can_pause(params);
printf(“can pause = %d/n”, val);
val = snd_pcm_hw_params_can_resume(params);
printf(“can resume = %d/n”, val);
val = snd_pcm_hw_params_can_sync_start(params);
printf(“can sync start = %d/n”, val);
snd_pcm_close(handle);
return 0;
}
linux聲音改為外放的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux聲音改為外放,教你一招,將Linux聲音改為外放,聽(tīng)音樂(lè)更自在,為啥Linux系統(tǒng)插上耳機(jī)有聲音,拔掉耳機(jī)就沒(méi)有聲音,而XP系統(tǒng)就有聲音!,請(qǐng)教Linux下ALSA聲道切換的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱(chēng):教你一招,將Linux聲音改為外放,聽(tīng)音樂(lè)更自在(linux聲音改為外放)
瀏覽地址:http://m.fisionsoft.com.cn/article/dhdjsds.html


咨詢(xún)
建站咨詢(xún)
