我制作了一个用户控件来播放带有滑块的 MP3,这样当我使用两个或更多用户控件时,我可以播放 MP3 并使用滑块来降低每个 MP3 的音量。使用 WaveOut() 本身的音量控制有效,但随后所有 UserControls 的音量上下波动。所以我找到了我应该使用 SampleChannel 并在那里设置音量的地方:BINGO。但是现在,当我用耳机听的时候,把电脑上的耳机音量设置为100%,音量比不使用SampleChannel要低很多....奇怪
private void slider1_Scroll(object sender, ScrollEventArgs e)
{
if (_inputStream != null) _inputStream.Volume = sliderVolume.Value / 100f;
}
private Mp3FileReader _fileStream;
private SampleChannel _inputStream;
private WaveOut _player;
private void button1_Click(object sender, EventArgs e)
{
_fileStream = new Mp3FileReader(_path);
_inputStream = new SampleChannel(_fileStream) {Volume = sliderVolume.Value / 100f};
_player = new WaveOut();
_player.Init(_inputStream);
_player.Play();
//player.PlaybackStopped += _player_PlaybackStopped;
}