0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gtk3アプリ BGMを再生する

Last updated at Posted at 2022-01-19

####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();
    }
}

####追記

Gtk3アプリ TreeViewとデータ各種処理2へ続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?