c# - 在 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");
}
}
解决方案
推荐阅读
- python - 如何优化和矢量化我的功能?
- google-cloud-platform - BigQuery - 在插入表时调用查询
- android - Android:是否可以设置多次单击图像
- architecture - Cloudformation 对共享资源的依赖
- android - 为imageview创建gif动画
- ios - 连接到同一网络上的主机时出错 iOS 14.4 颤动
- sql - ')' SQL SERVER 附近的语法不正确
- java - 如何使 java 对象平滑并缓慢地跟随鼠标光标?
- python - 在 Python 中向 JSON 库添加信息时遇到问题
- google-bigquery - 如何从插入查询将数据插入到数组类型的大查询列中?