首页 > 解决方案 > 在 discord 上播放 NAudio 的 WAV 文件

问题描述

我想要做的是,构建一个机器人,它将在一个不和谐的频道内播放一个 wav 文件(我从其他地方拉)。我想让我们使用一个名为 NAudio 的库,它有一个包含所有内容的 nuget 包。
但我无法让它工作。(对于 mp3 来说效果很好)

我在这个Github 页面上做了一个示例

所以我读到我需要去一个PCM 流将其转换为不和谐的有效格式。但是由于某种原因它没有播放......(而且它没有给出任何错误)。但是当我使用 NAudio 播放 PCM 流时,它就可以工作了。

private async Task SpeakAsync(IAudioClient client)
{
    try
    {
        using (var reader = new WaveFileReader("Audio/Test123.wav"))
        {
            var naudio = WaveFormatConversionStream.CreatePcmStream(reader);

            //using (var waveOut = new WaveOutEvent())
            //{
            //    waveOut.Init(naudio);
            //    Log.Logger.Debug("Playing sounds...");
            //    waveOut.Play();
            //    while (waveOut.PlaybackState == PlaybackState.Playing)
            //    {
            //        Thread.Sleep(1000);
            //    }
            //}

            var dstream = client.CreatePCMStream(AudioApplication.Music);
            await naudio.CopyToAsync(dstream);

            dstream.Flush();
            client.StopAsync().Wait();
        }
    }
    catch (Exception e)
    {
        Log.Logger.Error(e, "Error while sending to discord");
    }
}

标签: c#.net.net-corediscordnaudio

解决方案


推荐阅读