I found a way to do it, first I had to upgrade to visual studio 2012, so I could use Net framework 4.5, then I used MediaPlayer from the namespace System.Windows.Media to play my sound files, look specifically at m_BGSM_Play_Click for the code that plays the sound files.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Media;
namespace RPGInventor
{
public partial class MapProperties : Form
{
CMap m_Map;
string m_InitialMapName;
bool m_bEdit;
int m_nLayer;
MediaPlayer m_SoundPlayer;
public MapProperties()
{
InitializeComponent();
m_bEdit = false;
m_mapType.Items.Add("Normal");
m_mapType.Items.Add("World Map");
m_mapLayer.Items.Add("Layer 1");
m_mapLayer.Items.Add("Layer 2");
m_mapLayer.Items.Add("Layer 3");
m_mapTileType.Items.Add("Normal");
m_mapTileType.Items.Add("Floor");
m_mapTileType.Items.Add("Wall");
m_BGSM_SD.Items.Add("BGM");
m_BGSM_SD.Items.Add("BGS");
m_BGSM_SD.Items.Add("ME");
m_BGSM_SD.Items.Add("SE");
m_BI_SD.Items.Add("BGM");
m_BI_SD.Items.Add("BGS");
m_BI_SD.Items.Add("ME");
m_BI_SD.Items.Add("SE");
m_SoundPlayer = new MediaPlayer();
}
public MapProperties(CMap map)
{
InitializeComponent();
m_Map = map;
m_bEdit = false;
m_mapType.Items.Add("Normal");
m_mapType.Items.Add("World Map");
m_mapLayer.Items.Add("Layer 1");
m_mapLayer.Items.Add("Layer 2");
m_mapLayer.Items.Add("Layer 3");
m_mapTileType.Items.Add("Normal");
m_mapTileType.Items.Add("Floor");
m_mapTileType.Items.Add("Wall");
m_BGSM_SD.Items.Add("BGM");
m_BGSM_SD.Items.Add("BGS");
m_BGSM_SD.Items.Add("ME");
m_BGSM_SD.Items.Add("SE");
m_BI_SD.Items.Add("BGM");
m_BI_SD.Items.Add("BGS");
m_BI_SD.Items.Add("ME");
m_BI_SD.Items.Add("SE");
setMap(m_Map);
m_SoundPlayer = new MediaPlayer();
}
public void setMap(CMap map)
{
m_mpMapHolder1.setMap(map);
m_bEdit = true;
m_InitialMapName = map.getMapName();
m_mapName.Text = map.getMapName();
if (map.getMapType() == (int)CMap.MapType.NORMAL)
m_mapType.SelectedIndex = 0;
else
m_mapType.SelectedIndex = 1;
m_mapWidth.Value = map.getGridSize().X;
m_mapHeight.Value = map.getGridSize().Y;
m_mapLayer.SelectedIndex = 0;
m_nLayer = 0;
m_bEdit = false;
}
public CMap getMap()
{
return m_mpMapHolder1.getMap();
}
private void m_mapNameUpdate_Click(object sender, EventArgs e)
{
MainForm mf = (MainForm)this.Owner;
mf.m_mapsListHolder1.changeMapName(m_InitialMapName, m_mapName.Text);
m_Map = getMap();
m_Map.delete(mf.m_Database);
m_Map.setMapName(m_mapName.Text);
m_Map.save(mf.m_Database);
m_InitialMapName = m_mapName.Text;
}
private void MapProperties_Shown(object sender, EventArgs e)
{
}
private void m_mapType_SelectedIndexChanged(object sender, EventArgs e)
{
if (!m_bEdit)
{
m_Map = getMap();
if (m_mapType.SelectedIndex == 0)
{
m_Map.setMapType((int)CMap.MapType.NORMAL);
}
else
{
m_Map.setMapType((int)CMap.MapType.WORLD_MAP);
}
}
}
private void m_mapSizeUpdate_Click(object sender, EventArgs e)
{
m_mpMapHolder1.setupGrid((int)m_mapWidth.Value, (int)m_mapHeight.Value);
MainForm mf = (MainForm)this.Owner;
mf.m_mapSetHolder1.setMap(getMap());
m_Map = getMap();
m_Map.save(mf.m_Database);
}
private void m_mapLayer_SelectedIndexChanged(object sender, EventArgs e)
{
if (!m_bEdit)
{
m_nLayer = m_mapLayer.SelectedIndex;
m_mpMapHolder1.changeLayer(m_nLayer + 1);
}
}
public void UpdateTiles(CMapObject mapObj)
{
if (mapObj != null)
{
m_mapZOrder.Value = mapObj.getZOrder();
if (mapObj.getType() == (int)CMapObject.MapObjectType.NORMAL)
{
m_mapTileType.SelectedIndex = 0;
}
else if (mapObj.getType() == (int)CMapObject.MapObjectType.FLOOR)
{
m_mapTileType.SelectedIndex = 1;
}
else if (mapObj.getType() == (int)CMapObject.MapObjectType.WALL)
{
m_mapTileType.SelectedIndex = 2;
}
}
}
private void MapProperties_FormClosing(object sender, FormClosingEventArgs e)
{
m_SoundPlayer.Stop();
m_SoundPlayer.Close();
m_Map = getMap();
MainForm mf = (MainForm)this.Owner;
m_Map.save(mf.m_Database);
}
private void m_BGSM_SD_SelectedIndexChanged(object sender, EventArgs e)
{
m_BGSM_Sound.Items.Clear();
m_BGSM_Sound.SelectedIndex = -1;
m_BGSM_Sound.Text = "";
string szItem = (string)m_BGSM_SD.SelectedItem;
MainForm mf = (MainForm)this.Owner;
if (szItem.Equals("BGM"))
{
for (int i = 0; i < mf.m_Database.m_BGMSounds.Length; ++i)
{
string strSound = mf.m_Database.m_BGMSounds[i];
int nEnd = strSound.LastIndexOf("\\");
nEnd++;
m_BGSM_Sound.Items.Add(strSound.Substring(nEnd));
}
}
if (szItem.Equals("BGS"))
{
for (int i = 0; i < mf.m_Database.m_BGSSounds.Length; ++i)
{
string strSound = mf.m_Database.m_BGSSounds[i];
int nEnd = strSound.LastIndexOf("\\");
nEnd++;
m_BGSM_Sound.Items.Add(strSound.Substring(nEnd));
}
}
if (szItem.Equals("ME"))
{
for (int i = 0; i < mf.m_Database.m_MESounds.Length; ++i)
{
string strSound = mf.m_Database.m_MESounds[i];
int nEnd = strSound.LastIndexOf("\\");
nEnd++;
m_BGSM_Sound.Items.Add(strSound.Substring(nEnd));
}
}
if (szItem.Equals("SE"))
{
for (int i = 0; i < mf.m_Database.m_SESounds.Length; ++i)
{
string strSound = mf.m_Database.m_SESounds[i];
int nEnd = strSound.LastIndexOf("\\");
nEnd++;
m_BGSM_Sound.Items.Add(strSound.Substring(nEnd));
}
}
}
private void m_BGSM_Play_Click(object sender, EventArgs e)
{
string szSoundDir = (string)this.m_BGSM_SD.SelectedItem;
string szSoundName = (string)this.m_BGSM_Sound.SelectedItem;
MainForm mf = (MainForm)this.Owner;
if (szSoundDir != null && szSoundName != null)
{
String szPath = "./Projects/" + mf.m_Database.m_Name + "/Audio/" + szSoundDir + "/" + szSoundName;
m_SoundPlayer.Open(new Uri(szPath, UriKind.Relative));
m_SoundPlayer.Play();
}
}
}
}
I got my ideas from
http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/PlaywithMediaPlayer.htm[
^]