Vlc

如何讓 vlc 以 50% 的音量播放所有影片?

  • October 28, 2015

有沒有辦法讓 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 時的音量級別如何。

引用自:https://unix.stackexchange.com/questions/237758