updated music
This commit is contained in:
12
YoutubeExtension/Others/Data.cs
Normal file
12
YoutubeExtension/Others/Data.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Discord;
|
||||
using Discord.Audio;
|
||||
|
||||
namespace YoutubeExtension.Downloader;
|
||||
|
||||
internal static class Data
|
||||
{
|
||||
internal static IAudioClient audioClient = null;
|
||||
internal static IVoiceChannel voiceChannel = null;
|
||||
|
||||
internal static MusicPlayer CurrentlyRunning = null;
|
||||
}
|
||||
50
YoutubeExtension/Others/MusicPlayer.cs
Normal file
50
YoutubeExtension/Others/MusicPlayer.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
18
YoutubeExtension/Others/YTVideo.cs
Normal file
18
YoutubeExtension/Others/YTVideo.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using MediaToolkit;
|
||||
using MediaToolkit.Model;
|
||||
using VideoLibrary;
|
||||
|
||||
namespace YoutubeExtension.Downloader;
|
||||
|
||||
public class YoutubeHandler
|
||||
{
|
||||
|
||||
public static async Task<Stream> GetVideoStream(string videoURL)
|
||||
{
|
||||
var youtube = YouTube.Default;
|
||||
var video = await youtube.GetVideoAsync(videoURL);
|
||||
|
||||
return await video.StreamAsync();
|
||||
|
||||
}
|
||||
}
|
||||
9
YoutubeExtension/YoutubeExtension.csproj
Normal file
9
YoutubeExtension/YoutubeExtension.csproj
Normal file
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
6
YoutubeExtension/ytPlay.cs
Normal file
6
YoutubeExtension/ytPlay.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace YoutubeExtension;
|
||||
|
||||
public class ytPlay
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user