C#dotnet console app在raspberry pi 3上播放mp3

时间:2017-11-23 00:03:30

标签: c# raspberry-pi .net-core raspbian raspberry-pi3

我通过C#中的dotnet控制台应用程序编写了一个Telegram Bot。 它识别命令(如/ hi)并执行操作......

我要整合的功能是在发送号码时播放歌曲的可能性 如何通过我的Raspberri Pi 3上的C#播放.mp3文件? dotnet不允许使用" System.Media" lib ...

我已经尝试过搜索NuGet,但我什么也没找到,我也尝试在网上搜索并搜索一些指南......

你有什么建议吗?

2 个答案:

答案 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 .