在raspberry pi 3上播放mp3的C#dotnet控制台应用程序

在raspberry pi 3上播放mp3的C#dotnet控制台应用程序,c#,raspberry-pi,.net-core,raspbian,raspberry-pi3,C#,Raspberry Pi,.net Core,Raspbian,Raspberry Pi3,我通过C#中的dotnet控制台应用程序编程了一个电报机器人。 它识别命令(如/hi)并执行操作 我想集成的一个功能是在发送号码时可以播放歌曲。 如何在我的Raspberri Pi 3上通过C#播放该.mp3文件? dotnet不允许使用“System.Media”库 我已经试着搜索NuGet,但我什么也没找到,我也试着在网上搜索和搜索一些指南 您有什么建议吗?一个非常棘手的解决办法是将mp3传递给mpv媒体播放器(在命令行中运行的小巧小巧的播放器) 为此,您必须首先安装MPV: sudo ap

我通过C#中的dotnet控制台应用程序编程了一个电报机器人。 它识别命令(如/hi)并执行操作

我想集成的一个功能是在发送号码时可以播放歌曲。
如何在我的Raspberri Pi 3上通过C#播放该.mp3文件?
dotnet不允许使用“System.Media”库

我已经试着搜索NuGet,但我什么也没找到,我也试着在网上搜索和搜索一些指南


您有什么建议吗?

一个非常棘手的解决办法是将mp3传递给mpv媒体播放器(在命令行中运行的小巧小巧的播放器)

为此,您必须首先安装MPV:

sudo apt安装mpv-y
要从.NET Core应用程序中启动播放机,可以使用以下代码:

字符串路径tomp3file=“/home/pi/Test.mp3”;
System.Diagnostics.Process PulseAudioStart=System.Diagnostics.Process.Start(“pactl”、“info”);
PulseAudioStart.WaitForExit();
如果(PulseAudioStart.ExitCode!=0)
抛出新异常($”未能初始化PulseAudio守护进程:{PulseAudioStart.ExitCode}”);
System.Diagnostics.Process MpvStart=System.Diagnostics.Process.Start(“mpv”,$”--无视频--无间隙音频--音量=100.0{PathToMp3File});
MpvStart.WaitForExit();
如果(MpvStart.ExitCode!=0)
抛出新异常($“启动播放机失败:{MpvStart.ExitCode}”);
您还可以使用mpv的命令行参数
--loop=inf
无限期地循环文件(在这种情况下,您必须在某个时间终止进程)


享受吧!

一个非常棘手的解决办法是将mp3传送到mpv媒体播放器(在命令行中运行的小巧小巧的播放器)

为此,您必须首先安装MPV:

sudo apt安装mpv-y
要从.NET Core应用程序中启动播放机,可以使用以下代码:

字符串路径tomp3file=“/home/pi/Test.mp3”;
System.Diagnostics.Process PulseAudioStart=System.Diagnostics.Process.Start(“pactl”、“info”);
PulseAudioStart.WaitForExit();
如果(PulseAudioStart.ExitCode!=0)
抛出新异常($”未能初始化PulseAudio守护进程:{PulseAudioStart.ExitCode}”);
System.Diagnostics.Process MpvStart=System.Diagnostics.Process.Start(“mpv”,$”--无视频--无间隙音频--音量=100.0{PathToMp3File});
MpvStart.WaitForExit();
如果(MpvStart.ExitCode!=0)
抛出新异常($“启动播放机失败:{MpvStart.ExitCode}”);
您还可以使用mpv的命令行参数
--loop=inf
无限期地循环文件(在这种情况下,您必须在某个时间终止进程)


享受吧!

目前我找到的最好的解决方案是。Nuget适用于MP3文件,但不适用于流


带有doc的项目repo位于此处:。

目前我找到的最佳解决方案是。Nuget适用于MP3文件,但不适用于流


带有doc的项目repo位于此处:。

您是否尝试使用播放音频文件?@johnepraimtugado感谢您的建议。我使用sox解决了以下问题:
Process.Start(“play”、Path.Combine(“files”、“songs”、song+“.mp3”))
您是否尝试过使用播放音频文件?@johnepraimtugado感谢您的建议。我使用sox解决了以下问题:
进程。开始(“播放”,路径。组合(“文件”,“歌曲”,歌曲+”.mp3”);