Lorc520

DFPWM url reader

May 20th, 2025
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. local dfpwm = require("cc.audio.dfpwm")
  2. local speaker = peripheral.find("speaker")
  3.  
  4. print("Please enter the full URL of the .dfpwm file:")
  5. local input = read()
  6.  
  7. print("Do you want to be in repeat mode? Y/N")
  8. local repeatMode = false
  9.  
  10. while true do
  11. local inputYN = read()
  12. if inputYN == "Y" or inputYN == "y" then
  13. repeatMode = true
  14. break
  15. elseif inputYN == "N" or inputYN == "n" then
  16. break
  17. else
  18. print("Please type Y or N")
  19. end
  20. end
  21.  
  22. repeat
  23. local response = http.get(input)
  24. if not response then
  25. print("Failed to download audio from URL.")
  26. break
  27. end
  28.  
  29. local decoder = dfpwm.make_decoder()
  30.  
  31. while true do
  32. local chunk = response.read(16 * 1024)
  33. if not chunk then break end
  34.  
  35. local buffer = decoder(chunk)
  36. while not speaker.playAudio(buffer) do
  37. os.pullEvent("speaker_audio_empty")
  38. end
  39. end
  40.  
  41. response.close()
  42.  
  43. until not repeatMode
  44.  
Add Comment
Please, Sign In to add comment