1

我正在尝试播放嵌入在我的 c# 应用程序(winforms)中但没有结果的 mp3 文件。我不想从资源创建文件并播放它。我搜索了互联网,但没有找到任何工作示例。他们都从资源中创建文件并保存,然后将文件路径传递给 mci 或 wmp。是否可以通过流?

public partial class Form1 : Form
{
    [DllImport("winmm.dll")]
    private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback);
    public Form1()
    {
        InitializeComponent();
        Stream fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("mymp3.mp3");
        string command = "open" + fileStream not filePath + "type MPEGVideo alias MyMp3";
        mciSendString(command, null, 0, 0);
        command = "play MyMp3";
        mciSendString(command, null, 0, 0);
    }
}

提前致谢

4

1 回答 1

0

您需要将 MP3 转换为可播放的格式。您已经有了 MP3 流,因此您可以使用 NAudio 之类的东西来转换为 WAV 流。完成此操作后,您可以使用 SoundPlayer 类。你会得到类似下面的东西。

using (Mp3FileReader reader = new Mp3FileReader(fileStream)) {  
    using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader)) {   
        SoundPlayer player = new SoundPlayer(pcmStream);  
        player.Play();  
} } }
于 2012-12-22T10:55:10.353 回答