C#如何一次播放一个MP3音频文件
问题描述:
我想要做的是播放列表框中选定项目的声音文件。例如:项目1播放“1.mp3”,项目2播放“2.mp3” 但事情是,它需要停止其他音频,然后播放。它播放wavs时会这样做:C#如何一次播放一个MP3音频文件
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex == 0)
{
SoundPlayer player = new SoundPlayer();
player.SoundLocation = "S1.mp3";
player.Play();
}
if (listBox1.SelectedIndex == 1)
{
SoundPlayer player = new SoundPlayer();
player.SoundLocation = "S2.mp3";
player.Play();
}
if (listBox1.SelectedIndex == 2)
{
SoundPlayer player = new SoundPlayer();
player.SoundLocation = "S3.mp3";
player.Play();
}
}
但是wavs太大了,所以我需要一个替代方案。
我到处都找过,以找到一个解决方案,但没有工作:(n音讯播放在彼此顶部的声音,我无法找到如何使用NVorbis和oggsharp等
使用的任何格式音频是好的,我不在乎,我只是不能使用WAV。
答
有SoundPlayer
一个实例,并播放下一个音频之前,停止当前之一。
public class Sounds
{
SoundPlayer player = new SoundPlayer();
public void Play(string file)
{
player.Stop();
player.SoundLocation = file;
player.Play();
}
}
对于MP3你可以使用WMPLib.WindowsMediaPlayer
要以编程方式创建Windows Media Player控件,必须先添加对\ Windows \ system32文件夹中的wmp.dll的引用。
public class Sounds
{
WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();
private void PlayFile(String url)
{
player.URL = url;
player.controls.play();
}
}
用法:
public class MyThing
{
Sounds sounds = new Sounds();
string SelectedFile;
public void OnPlayClick()
{
sounds.PlayFile(SelectedFile);
}
}
你想点击一次按钮,然后将其播放每个选定的文件一个接一个?或者它只播放一个选定的文件? –
播放一个选定的文件开始。我可以稍后在 – Matty