With C#, How do I play (Pause, Forward...) a sound file (mp3, ogg)? The file could be on the hard disk, or on the internet.
Is there any library or Class out there that can ease me the work ?
If you don't mind including Microsoft.VisualBasic.dll in your project, you can do it this way:
var audio = new Microsoft.VisualBasic.Devices.Audio();
audio.Play("some file path");
If you want to do more complex stuff, the easiest way I know of is to use the Windows Media Player API . You add the DLL and then work with it. The API is kind of clunky, but it does work; I've used it to make my own music player wrapper around Windows Media Player for personal use. Here are some helpful links to get you started:
Building a Web Site with ASP .NET 2.0 to Navigate Your Music Library
EDIT:
Since I wrote this, I've found an easier way, if you don't mind including WPF classes in your code. WPF (.NET 3.0 and forward) has a MediaPlayer class that's a wrapper around Windows Media Player. This means you don't have to write your own wrapper, which is nice since, as I mentioned above, the WMP API is rather clunky and hard to use.
I would recommend the BASS Library . It can play both filebased music files and streaming content. There is also a .NET wrapper available.
Alvas.Audio has RecordPlayer class with these possibilities:
public static void TestRecordPlayer()
{
RecordPlayer rp = new RecordPlayer();
rp.PropertyChanged += new PropertyChangedEventHandler(rp_PropertyChanged);
rp.Open(new Mp3Reader(File.OpenRead("in.mp3")));
rp.Play();
rp.Forward(1000);
rp.Pause();
}
static void rp_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case RecordPlayer.StateProperty:
RecordPlayer rp = ((RecordPlayer)sender);
if (rp.State == DeviceState.Stopped)
{
rp.Close();
}
break;
}
}
There's a media player control - basically what Media Player uses. You can put that in your program and there's an API you can use to control it. I think it's the best quick solution.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.