繁体   English   中英

在树莓派 3 上播放 mp3 的 C# dotnet 控制台应用程序

[英]C# dotnet console app to play mp3 on raspberry pi 3

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

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

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

你有什么建议吗?

一个非常脏的解决方法是将 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}");

您还可以通过使用命令行参数--loop=inf for mpv 无限期地循环文件(在这种情况下,您必须在某个时间--loop=inf进程)

享受!

我目前找到的最佳解决方案是https://www.nuget.org/packages/NetCoreAudio/ Nuget 适用于 MP3 文件,但不适用于流。

带有 doc 的项目存储库位于: https : //github.com/mobiletechtracker/NetCoreAudio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM