Guest User

Untitled

a guest
Apr 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. public static async Task AddMusicFromYoutube(VoiceNextConnection vnc, CommandContext ctx, string url)
  2. {
  3. string fileName = "";
  4.  
  5. if (url.ToLower().Contains("youtube.com"))
  6. {
  7. fileName = await DownloadFromYouTube(url);
  8. if (fileName == string.Empty) return;
  9.  
  10. await ctx.RespondAsync($"Playing for **Youtube** -> `{url}`");
  11. await vnc.SendSpeakingAsync(true);
  12.  
  13. var ffmpeg_pro = new ProcessStartInfo
  14. {
  15. FileName = "Libs/ffmpeg",
  16. Arguments = $@"-xerror -i ""{fileName}.mp3"" -ac 2 -f s16le -ar 48000 pipe:1",
  17. RedirectStandardOutput = true,
  18. UseShellExecute = false
  19. };
  20. var ffmpeg = Process.Start(ffmpeg_pro);
  21.  
  22. Stream ffout = ffmpeg.StandardOutput.BaseStream;
  23.  
  24. using (var ms = new MemoryStream())
  25. {
  26. await ffout.CopyToAsync(ms);
  27. ms.Position = 0;
  28.  
  29. var buff = new byte[3840];
  30. var br = 0;
  31. while ((br = ms.Read(buff, 0, buff.Length)) > 0)
  32. {
  33. if (br < buff.Length)
  34. for (var i = br; i < buff.Length; i++)
  35. buff[i] = 0;
  36.  
  37. await vnc.SendAsync(buff, 20); // Send PCM date for discord
  38.  
  39. //tentativa de parar a musica
  40. if (Program.IsPuased)
  41. {
  42. while (Program.IsPuased)
  43. {
  44. }
  45. }
  46. }
  47.  
  48. ms.Close();
  49. }
  50. await vnc.SendSpeakingAsync(false);
  51. }
  52. else
  53. {
  54. await ctx.RespondAsync($"{ctx.Member.Mention}, por agora sรณ aceito link's do Youtube!");
  55. return;
  56. }
  57. }
Add Comment
Please, Sign In to add comment