C#mp3文件没有声音

时间:2016-06-14 20:10:20

标签: c# mp3 playback

各位大家好,并提前致谢。

我试图在网络表单中播放mp3文件。我正在使用我在网上找到的这门课程......

using System.Runtime.InteropServices;
using System.Text;

namespace MP3_Player
{
  class MusicPlayer :System.IDisposable
  {
    public bool Repeat { get; set; }

    public MusicPlayer(string filename)
    {
        const string FORMAT = @"open ""{0}"" type mpegvideo alias MediaFile";
        string command = System.String.Format(FORMAT, filename);
        mciSendString(command, null, 0, 0);
    }

    [DllImport("winmm.dll")]
    private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback);

    public void open(string file)
    {
        string command = "open \"" + file + "\" type MPEGVideo alias MediaFile";
        mciSendString(command, null, 0, 0);
    }

    public void play()
    {
        string command = "play MediaFile";
        if(Repeat) command += " REPEAT";
        mciSendString(command, null, 0, 0);
    }

    public void stop()
    {
        string command = "stop MediaFile";
        mciSendString(command, null, 0, 0);

        Dispose();
    }

    public void Dispose()
    {
        string command = "close MediaFile";
        mciSendString(command, null, 0, 0);
    }
  }
}

...然后,我尝试使用这段代码从我的网络表单中播放...

private MusicPlayer player;
...
    private void Detalles_Click(object sender, EventArgs e)
    {
        ...
        Thread thread = new Thread(Musica);
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
        thread.Join();
    }

    private void Musica()
    {
        if(player != null)
        {
            player.stop();
        }
        player = new MusicPlayer("~/Mantenimiento/MP3/ejemplo.mp3");
        player.play();
    }

......但它不起作用。请问,有人可以告诉我我做错了什么,失踪了还是其他什么?。

顺便说一句,是否有更轻松的方式播放声音?我以前在Android中这样做,它只有大约五到六行代码。

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

不幸的是,您正在使用的控件正在尝试在服务器上播放该文件。您的目标是在客户端上播放它。为此,请在网页中添加html 5音频控件(请参阅此link)。将音频文件放在某处,以便可以从您的网站下载。使用音频控件中的该路径将音频文件传送到用户Web浏览器,以便他们可以播放它。

<audio controls id='audioTagId'>
  <source src="path to media file.mp3' />
  <p>Your user agent does not support the HTML5 Audio element.</p>
</audio>

如果需要,您可以根据操作使用javascript触发控件。

var v = document.getElementById("audioTagId");
v.play();