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。

+0

你想点击一次按钮,然后将其播放每个选定的文件一个接一个?或者它只播放一个选定的文件? –

+0

播放一个选定的文件开始。我可以稍后在 – Matty

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); 
    } 
} 
+0

上实现一个自动播放功能,好的,谢谢生病尝试mp3一个 – Matty

+0

@Matty我已经改变了它。 –

+0

你好我刚刚意识到,对不起 – Matty