####System.Media.SoundPlayerが使えない。
Ubuntu .net5ではWindowsで使えたSoundPlayer System.Media.SoundPlayerが使えない。
NAudioというライブラリを使えばMp3が再生できるようだが、.net5サポートしていない。
####VLCを実行させてMP3を再生させる。
$ sudo apt-get install vlc
/usr/bin/vlc MP3ファイルのパス --play-and-exit --input-repeat=3
再生し終わった後に終了する
--play-and-exit
リピート回数
--input-repeat=3
VLCの引数
サブスレッド内で実行するとTimer関数内で実行しても長時間実行しても落ちずにすむ
using System;
using System.Threading.Tasks;
public class clsTest2
{
//メンバーにする。メモリリークを防止する
private System.Diagnostics.Process P;
private void _mkSound()
{
//サブスレッド内で実行する
var task = new Task(async () =>
{
string argsStr = " " + "/mp3ファイル" + " --play-and-exit --input-repeat=3";
p = new System.Diagnostics.Process();
p.StartInfo.FileName = "/usr/bin/vlc";
//引数
p.StartInfo.Arguments = argsStr;
// コンソール・ウィンドウを開かない
p.StartInfo.CreateNoWindow = true;
// シェル機能を使用しない
p.StartInfo.UseShellExecute = false;
// 標準出力をリダイレクト
p.StartInfo.RedirectStandardOutput = true;
// 標準入力をリダイレクト
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
//プロセスが終了したときに、Exited イベントを発生させるかどうか設定
p.EnableRaisingEvents = true;
P.Exited += delegate(object? sender, EventArgs args)
{
P.Close();
P.Dispose();
};
P.Start();
P.BeginOutputReadLine();
//P.WaitForExit();
});
task.Start();
}
}
####追記