簡體   English   中英

C ++中的SDL靜音音量

[英]SDL mute volume in C++

如何在C ++中使用SDL靜音音量?
揚聲器已連接到耳機插孔。 如果音量未靜音,我會聽到背景噪音,但是當我靜音(使用“ axerer設置耳機靜音”)時,它會停止。 我嘗試將Mix_VolumeMusic()和Mix_Volume()設置為零以實現相同的音量,但是它只是改變了音樂的聲音,噪音仍然存在。

環境:
Debian Sqeeze
軟件包:libsdl1.2-dev
版本:1.2.14-6.1

盡管我什至在libsdl.org網站上的文檔中都沒有看到這些功能,但我認為SDL沒有靜音功能。 通過查看API,我猜想它僅控制一個內部軟件混音器(PCM音量控制在SDL 1.3願望清單中),但是您可以通過調整音量並使用alsamixer調出系統音量設置(<Esc >鍵退出)。 骯臟的解決方法是使用系統調用來執行混合器程序。 您需要具有#include <stdlib.h>並運行system("amixer set Headphone mute"); 除此之外,我還會考慮使用alsa等其他工具來實現真正的靜音,並編寫自己的靜音功能,以便以后可以輕松替換。 如果需要支持Windows,則可以在其中寫入#ifdef _WIN32/#else/#endif塊。

雖然我不主張通過硬件來解決軟件問題,但似乎可能需要更好的聲卡。 另外,如果您在計算機上使用后部插孔,則可能比前部插孔獲得更好的聲音。 我總是從插入主板的細聲音電纜中拾取很多噪音。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM