アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

C#(.Net 4.0)で、MediaPlayerをコントロールでフォーム等に
張り付けるのではなく、System.Diagnostics内の
Process.Start("wmplayer.exe","再生ファイル")で
外部プログラムとしてmp3や動画を開いたときに、
再生が終了(最後まで再生し終わったら)したら、
自動でMediaPlayerを終了させたいのですが、
その方法はありますでしょうか。

現在のコードはこうなっています(usingは省略)。

private void button1_Click(object sender, EventArgs e)
{
Process p = Process.Start("wmplayer.exe", @"C:\Users\hoge\Documents\abcde.mp4");
p.WaitForExit();
}

特に何の変哲もない、外部プログラムの起動ですが、
自動で閉じてもらわないと、下のWaitForExitに処理が回りません。

対策をお願いいたします。

A 回答 (2件)

http://support.microsoft.com/kb/883200/ja
http://121ware.com/qasearch/1007/app/servlet/rel …
の両方を参照して「ファイル名を指定して実行」でメディアプレーヤーを起動して
/play /close
が正常に機能しているか確認してみて下さい。

「ファイル名を指定して実行」で、メディアプレーヤーが再生完了後に終了して閉じるのであれば、機能的には問題が無いという事になりますから、あとは「呼び出し方法の問題」だけになります。

この回答への補足

度々恐れ入ります。

いろいろ試行錯誤しておりますが、結果は変りません。

ちなみに、参考のURLは、MediaPlayerのバージョンは7、
2004年のものになっています。

また、検索している中、下記のような記事も見つけました。

http://answers.microsoft.com/ja-jp/windows/forum …

記事にある通り、いつものマイクロソフトの『やっちゃった(テヘッ)』
不具合かもしれません。

だとすると、既存の方法では、自動終了はできないということになっているのかも
知れません。

それとももし、ご指摘の方法で自動終了できたのであれは、その詳細を
お送りいただければ幸いです。

よろしくお願いいたします。

補足日時:2014/10/27 15:38
    • good
    • 0

ご参考。


http://support.microsoft.com/kb/241422/ja

Process p = Process.Start("mplayer2.exe", @"/play /close C:\Users\hoge\Documents\abcde.mp4");

因みに、mplayer2.exeは、wmplayer.exeから起動される「メディアプレーヤーの本体」です。

この回答への補足

早速の回答、ありがとうございます。

ですが、上手くいきません。

/playで再生は行くのですが、終了後に閉じてくれません。


他の環境か何かがいけないのでしょうか。

私の環境は、WMPはVer.12、Windows8,1です。

ちなこに、コマンド窓から入力しても『mplayer2』は
動きませんでした。pathが通っていないとかではなく、
mplayer2自体が見つかりませんでした。

wmplayerで、以下のコマンドを投げてみましたが、結果は同じく、
再生されましたが閉じませんでした。

C#ではmplayer2は起動しました。

申し訳ありませんが、引き続きお願いいたします。

補足日時:2014/10/24 16:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!