如何讓 vlc 以 50% 的音量播放所有影片?
有沒有辦法讓 vlc 預設以 50% 的音量播放所有影片?我查看了線上文件,但沒有說明是否有可以調整的配置文件。
有沒有辦法通過編輯配置文件或任何其他方法將 vlc 的預設音量設置為 50%?
首先,讓我們偷懶:這可以使用 GUI 來完成。然而,使用哪個 GUI 取決於您使用的音頻輸出系統。打開 VLC,然後轉到Tools > Preferences > Audio。輸出模組設置將告訴您您正在使用什麼。
- 如果您使用的是 Pulse,那麼您的預設音量級別由 Pulse 本身處理。最簡單的配置方法是使用
pavucontrol
. 使用包管理器安裝它,啟動 VLC(帶音頻),然後打開pavucontrol
. 進入播放選項卡,並設置 VLC 的新值(在您的情況下為 50%)。- 如果您使用 ALSA,您可以直接在 VLC 中設置您的值。在輸出模組選項上方,選中始終將音頻開始級別重置為框,然後在旁邊的滑塊中選擇 50%。
如果您想在不使用 VLC/pavucontrol 的情況下配置音量級別,那麼該方法取決於您的音頻輸出。讓我們看一下VLC的程式碼:
static int getDefaultAudioVolume(vlc_object_t *obj, const char *aout) { if (!strcmp(aout, "pulse")) return -1; else if (!strcmp(aout, "alsa") && module_exists("alsa")) return cbrtf(config_GetFloat(obj, "alsa-gain")) * 100.f + .5f; else if (!strcmp(aout, "sndio")) return -1; return -1; }
我已經簡化了一點,但基本上:
如果您使用 Pulse,則 VLC 的配置沒有影響。您需要配置 Pulse 本身。看看
pactl
(或者可能是 pacmd的互動式界面)。這是設置 VLC 預設級別的“小”單行程式碼:$ pactl set-sink-input-volume $(pactl list short sink-inputs | grep $(pactl list short clients | grep vlc | cut -f1) | cut -f1) 50%
是的,這很醜陋。基本上,我正在獲取 VLC 的索引(作為客戶端),並找到相關的接收器輸入的索引。然後我將該索引註入
set-sink-input-volume
,並將值設置為 50%。查看pactl(1)
有關這些pactl
命令的更多資訊。請記住,您還可以使用pavucontrol
在 GUI 中配置 Pulse :)如果您使用 ALSA,您的預設音量級別將使用 中的
alsa-gain
設置確定~/.config/vlc/vlcrc
。對於 的預設體積x
,您應該將此值設置為((x - 0.5) / 100) ^ 3
,因為cbrtf
它是立方根。在您的情況下,這意味著alsa-gain = (49.5 / 100) ^ 3 = 0.121287375
. 您還需要將設置volume-save
設置為 0 (false),以便每次都應用新的預設值,無論您上次關閉 VLC 時的音量級別如何。