我通过C#中的dotnet控制台应用程序编写了一个Telegram Bot。 它识别命令(如/ hi)并执行操作......
我要整合的功能是在发送号码时播放歌曲的可能性 如何通过我的Raspberri Pi 3上的C#播放.mp3文件? dotnet不允许使用" System.Media" lib ...
我已经尝试过搜索NuGet,但我什么也没找到,我也尝试在网上搜索并搜索一些指南......
你有什么建议吗?
答案 0 :(得分:0)
一个非常肮脏的解决方法是将mp3传递给mpv媒体播放器(在命令行中运行的时尚小型播放器。
为此,您必须先安装MPV:
sudo apt install mpv -y
要从.NET Core应用程序中启动播放器,可以使用以下代码:
string PathToMp3File = "/home/pi/Test.mp3";
System.Diagnostics.Process PulseAudioStart = System.Diagnostics.Process.Start("pactl", "info");
PulseAudioStart.WaitForExit();
if(PulseAudioStart.ExitCode != 0)
throw new Exception($"Failed to initialize the PulseAudio daemon: {PulseAudioStart.ExitCode}");
System.Diagnostics.Process MpvStart = System.Diagnostics.Process.Start("mpv", $"--no-video --gapless-audio --volume=100.0 {PathToMp3File}");
MpvStart.WaitForExit();
if(MpvStart.ExitCode != 0)
throw new Exception($"Failed to start the player: {MpvStart.ExitCode}");
您还可以使用mpv的命令行参数--loop=inf
无限期地循环文件(在这种情况下,您必须在某个时候终止进程)
享受!
答案 1 :(得分:0)
我目前找到的最佳解决方案是 https://www.nuget.org/packages/NetCoreAudio/ 。 Nuget 适用于 MP3 文件,但不适用于流。
带有 doc 的项目存储库位于此处:https://github.com/mobiletechtracker/NetCoreAudio .