在DiscordBot中播放MemoryStream

时间:2019-09-29 10:47:35

标签: c# discord naudio

我尝试在Discord中播放MemoryStream。与Discord和AudioChannel的连接均正常。我使用NAudio和DataAvailable事件捕获数据。现在,我尝试将数据从MemoryStream转换为WaveStream并将数据发送到DiscordBot。 这是NAudio类的DataVAilable代码(Ready(MS)调用一个事件来显示主类,表明MemorStream已准备好发送到discordBot):

private void Audioin_DataAvailable(object sender, WaveInEventArgs e)
    {
        ms.Write(e.Buffer, 0, e.BytesRecorded);
        if (BytesRecorded == 0)
            Ready(ms);
        BytesRecorded += e.BytesRecorded;
    }

这是语音通道方法的连接:

private async void connect_channel()
{
    AudioClient = await music_channel.ConnectAsync();
    output = AudioClient.CreatePCMStream(AudioApplication.Music);
}

这是我的播放音乐代码:

public void playmusik(MemoryStream ws)
    {
        Task.Run(() =>
        {
            WaveStream blockAlignedStream = new RawSourceWaveStream(ws, new Mp3WaveFormat(44100, 2, 627, 192000));

            while (true)
            {
                blockAlignedStream.CopyTo(output);
                //OnGetMessage(ws.Length.ToString() + " " + ws.Capacity.ToString() + " " + blockAlignedStream.Length);

            }
        });

}

MemoryStream捕获数据并且正在增长,因此必须在其中存储某些内容,但不能在DiscordBot中播放它。

0 个答案:

没有答案