csharp 将MP3文件作为项目资源嵌入,并从临时文件中流式传输。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 将MP3文件作为项目资源嵌入,并从临时文件中流式传输。相关的知识,希望对你有一定的参考价值。

Assembly assembly = Assembly.GetExecutingAssembly();
string tmpMP3 = AppDomain.CurrentDomain.BaseDirectory + "temp.mp3";
using (Stream stream = assembly.GetManifestResourceStream("MyAssemblyName.music.mp3"))
using (Stream tmp = new FileStream(tmpMP3, FileMode.Create))
{
    byte[] buffer = new byte[32 * 1024];
    int read;

    while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
    {
        // Creates a temporary MP3 file in the executable directory
        tmp.Write(buffer, 0, read);
    }
}
WindowsMediaPlayer myplayer = new WindowsMediaPlayer();
myplayer.URL = tmpMP3;
myplayer.controls.play();
// Checks the state of the player, and sends the temp file path for deletion
myplayer.PlayStateChange += (NewState) =>
{
    Myplayer_PlayStateChange(NewState, tmpMP3);
};

private static void Myplayer_PlayStateChange(int NewState, string tmpMP3)
{
    if (NewState == (int)WMPPlayState.wmppsMediaEnded)
    {
        // Deletes the temp MP3 file
        File.Delete(tmpMP3);
    }
}

以上是关于csharp 将MP3文件作为项目资源嵌入,并从临时文件中流式传输。的主要内容,如果未能解决你的问题,请参考以下文章

csharp 简单的C#示例,用于连接Team Foundation Server存储库并从项目中下载文件。

以编程方式加载嵌入式资源文件

使用 AppDomain 将 DLL 作为嵌入式资源文件加载

三种方法,让WPF项目生成单文件

无法将 .mp3 音频文件作为背景音乐播放

在 C# 中将 Exe 文件作为嵌入式资源运行