I need something that will allow my program to play several audio files (.wav and/or .mp3) at the same time. It would be ideal if I could simply pass a file path to some method, and it will play that file without me having to worry about any of the details.
Additional requirements:
1) I need to be able to programmatically start and stop the playing of any audio file at any time.
2) I need to know when each audio file has finished playing (by either responding to an event or by knowing the duration of the sound file (samples, seconds, etc.) through some property)
3) This tool must be able to play .wav (and preferably .mp3) files of any length/duration.
4) This tool must be able to play multiple audio files at the same time (preferably at least 5 or 6 audio files at the same time).
I have already tried using SlimDX and SharpDX, but I could not find any way of programmatically determining when the file has stopped playing, or of finding the duration (length) of the file.
EDIT:
I believe I found what I was looking for! GStreamer seems to do everything that I was asking for. http://www.gstreamer.com/