Here is an example that worked for me...
make sure you are using using System.Runtime.InteropServices;
Call the methods in the dll via a class containing:
[DllImport(BASS_lib, CallingConvention = CallingConvention.StdCall)]
internal static extern bool BASS_ChannelSetAttribute(int Handle, ChannelAttributeClass.ChannelAttribute Attribute, float Value);
Now call the method:
bool setatt = BassClass.BASS_ChannelSetAttribute(_handel, ChannelAttributeClass.ChannelAttribute.Volume, 0.1f);
Also there is an easier way using the Nuget package just search for ManagedBass
Nuget : https://www.nuget.org/packages/ManagedBass/3.1.1
Github: https://github.com/ManagedBass/ManagedBass
Example usage below:
public partial class MainForm : Form
{
private int _handel;
public MainForm()
{
InitializeComponent();
}
private void StopSound()
{
try
{
// free the stream
BassClass.BASS_StreamFree(_handel);
// free BASS
BassClass.BASS_Free();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
private void PlaySound()
{
try
{
BassClass.BASS_Init(-1, 44100, DeviceInitFlagsClass.DeviceInitFlags.Default, IntPtr.Zero);
_handel = BassClass.BASS_StreamCreateFile(false, @"Music\mysong.mp3", 0L, 0L, BassFlagsClass.BassFlags.Default);
BassClass.BASS_ChannelPlay(_handel, false);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
private void MainForm_Load(object sender, EventArgs e)
{
PlaySound();
}
private void volumeToolStripMenuItem_Click(object sender, EventArgs e)
{
bool setatt = BassClass.BASS_ChannelSetAttribute(_handel, ChannelAttributeClass.ChannelAttribute.Volume, 0.1f);
}
}
}