我有一个使用Soundplayer播放.wav文件的应用程序,我查了一下,找不到一个方法来改变它播放的音量。我在找的是要单独改变文件的音量该程序或有一个滑块来更改Windows音量混音器中的窗口本身的音量。 谢谢!
public void loadSound() { sp.Load(); sp.Play(); } private void timer1_Tick(object sender,EventArgs e) { if (BarTimer.Value < BarTimer.Maximum) { BarTimer.Value = BarTimer.Value + 1; } if(BarTimer.Value==BarTimer.Maximum) { loadSound(); timer1.Stop(); BarTimer.Value = BarTimer.Minimum; } }
在windows平台上为c / c ++代码生成调用图的工具?
如何将PNG格式的XImage保存为base64string?
我如何看到另一个进程在Windows上运行?
如何使用具有(或不具有)Windows身份validation模式的本地sql Server数据库来设置我的C#Winforms应用程序?
强制释放()将malloc内存返回给操作系统
我只在MSDN上找到这个: 衰减Soundplayer音量 。
它使用waveOutGetVolume和waveOutSetVolume函数。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace VolumeControl { public partial class Form1 : Form { [DllImport("winmm.dll")] public static extern int waveOutGetVolume(IntPtr hwo,out uint dwVolume); [DllImport("winmm.dll")] public static extern int waveOutSetVolume(IntPtr hwo,uint dwVolume); public Form1() { InitializeComponent(); // By the default set the volume to 0 uint CurrVol = 0; // At this point,CurrVol gets assigned the volume waveOutGetVolume(IntPtr.Zero,out CurrVol); // Calculate the volume ushort CalcVol = (ushort)(CurrVol & 0x0000ffff); // Get the volume on a scale of 1 to 10 (to fit the trackbar) trackWave.Value = CalcVol / (ushort.MaxValue / 10); } private void trackWave_Scroll(object sender,EventArgs e) { // Calculate the volume that's being set. BTW: this is a trackbar! int NewVolume = ((ushort.MaxValue / 10) * trackWave.Value); // Set the same volume for both the left and the right channels uint NewVolumeAllChannels = (((uint)NewVolume & 0x0000ffff) | ((uint)NewVolume << 16)); // Set the volume waveOutSetVolume(IntPtr.Zero,NewVolumeAllChannels); } } }
希望它有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。