我有一个名为Sounds.cs
的类,用于管理我的表单中的声音播放,并且我希望能够调节其音量至小数值。是否有一种方法可以改变使用SoundPlayer
对象播放的声音的音量?或者也许有不同的方式来播放声音使这成为可能?
SoundPlayer
没有提供更改音量的API。您可以使用MediaPlayer
类:using System.Windows.Media;
public class Sound
{
private MediaPlayer m_mediaPlayer;
public void Play(string filename)
{
m_mediaPlayer = new MediaPlayer();
m_mediaPlayer.Open(new Uri(filename));
m_mediaPlayer.Play();
}
// `volume` is assumed to be between 0 and 100.
public void SetVolume(int volume)
{
// MediaPlayer volume is a float value between 0 and 1.
m_mediaPlayer.Volume = volume / 100.0f;
}
}
您还需要添加对PresentationCore
和WindowsBase
程序集的引用。
PresentationCore
是WPF的一部分;也许存在一些不兼容性。 - SamSystem.Windows.Media
时遇到了麻烦。在Visual Studio的“添加引用...”窗口中搜索PresentationCore
。您还需要引用WindowBase
以使用MediaPlayer类的Open()
和Play()
函数。 - Andrew
volume
,它的值在0到100之间,我想能够调整使用player.Play()
播放的声音的音量。 - Nolan B.