Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
C# NAudioで個別に音量調整をしたい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30954#CommentId86168
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
KOZ
 (社会人)
投稿日時
2024/3/22 06:33:22
AudioFileReader と WaveOutEvent を使い、AudioFileReader の Volume プロパティを使うと個別に調整できるようです。
using NAudio.Wave;
public partial class Form1 : Form
{
readonly AudioFileReader reader1 = new("test1.mp3");
readonly AudioFileReader reader2 = new("test2.mp3");
readonly WaveOutEvent WaveOut1 = new();
readonly WaveOutEvent WaveOut2 = new();
public Form1() {
InitializeComponent();
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
WaveOut1.Init(reader1);
WaveOut2.Init(reader2);
}
private void button1_Click(object sender, EventArgs e) {
PlayControl(WaveOut1, reader1, trackBar1);
}
private void button2_Click(object sender, EventArgs e) {
PlayControl(WaveOut2, reader2, trackBar2);
}
private void trackBar1_Scroll(object sender, EventArgs e) {
SetVolume(reader1, trackBar1);
}
private void trackBar2_Scroll(object sender, EventArgs e) {
SetVolume(reader2, trackBar2);
}
private static void PlayControl(WaveOutEvent waveOut, AudioFileReader reader, TrackBar trackBar) {
if (waveOut.PlaybackState == PlaybackState.Playing) {
waveOut.Stop();
} else {
SetVolume(reader, trackBar);
reader.Position = 0;
waveOut.Play();
}
}
private static void SetVolume(AudioFileReader reader, TrackBar trackBar) {
reader.Volume = (float)trackBar.Value / trackBar.Maximum;
}
}