Files
SethDiscordBot/YoutubeExtension/Others/MusicPlayer.cs
2022-07-09 09:48:45 +03:00

51 lines
1.2 KiB
C#

namespace YoutubeExtension.Downloader;
internal class MusicPlayer
{
public MusicPlayer(Stream input, Stream output)
{
inputStream = input;
outputStream = output;
}
public Stream inputStream { get; } // from outside
public Stream outputStream { get; } // to Voice Channel
public bool Paused { get; set; }
private bool _stop { get; set; }
public void Stop()
{
_stop = true;
}
public async Task StartSendAudio()
{
Paused = false;
_stop = false;
while (!_stop)
{
if (Paused) continue;
var bsize = 512;
var buffer = new byte[bsize];
var bcount = await inputStream.ReadAsync(buffer, 0, bsize);
if (bcount <= 0)
{
Stop();
Data.CurrentlyRunning = null;
break;
}
try
{
await outputStream.WriteAsync(buffer, 0, bcount);
}
catch (Exception ex)
{
await outputStream.FlushAsync();
PluginManager.Others.Functions.WriteLogFile(ex.ToString());
}
}
}
}