こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WMPのコード操作

 Visual Studio 2010でWMP(Windows Media Player)を使用するアプリを書いています。Windows7です。

 VS(Visual Studio)の提供してくれる相互運用ライブラリでCOM化し、MSDNでメソッドやプロパティーを調べてコードを書きました。

 WMP.URL="ファイル名"でwavファイルを与え、WMP.Controls.Play,WMP.Controls.Stopでwavファイルの再生を開始,停止し、WMP.Ctlcontrols.currentPositionで現在位置を取得などしているのですが、WMP.URL="ファイル名"で一度ファイルをWMPに関連付けると、Stopした後もファイルがWMPから解放されません。

 Stop後にファイルの一部を変更したいのですが、「別のプロセスが使用中でアクセスできません」が出ます。WMPに関連付けたファイルを解放する方法を教えて下さい。

 MSDNで調べてはみたのですが、機械語直訳のせいか、なかなか意味がわかりません。お願いします。返答はCでもかまいません。

投稿日時 - 2016-04-19 13:36:19

QNo.9160838

困ってます

質問者が選んだベストアンサー

検索で見つかった情報はどうでしょう?

Set the URL property of the WMP ActiveX control to the path of the file to play. For example:

this.axWindowsMediaPlayer1.URL = "file path";

In addition, if you want to stop playing the file, simply set the URL property to an empty string or call the close method of the WMP control:

this.axWindowsMediaPlayer1.URL = "";
-or-
this.axWindowsMediaPlayer1.close();

https://social.msdn.microsoft.com/Forums/ja-JP/33dabcb3-2d27-4e2a-9ee1-9702816661de/windows-media-player-contoll-in-c?forum=winforms

投稿日時 - 2016-04-20 11:14:12

お礼

 その後のテストで、

  this.axWindowsMediaPlayer1.URL = ""

ではうまく行く場合と、行かない場合があるのがわかりました。

  this.axWindowsMediaPlayer1.close()

で安定した結果が得られます。

 素早い回答ありがとうございます(^^)。

投稿日時 - 2016-04-20 14:31:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ヤマ勘ですが、
WMP.URL=""
かも?

投稿日時 - 2016-04-19 21:24:34

補足

 WMP.URL=""は、やってみたんですよぉ~。WMP.URL=Nothingも。駄目でした・・・。

 =NothingでNull参照エラーが返って来ないというのも、腹立たしい(^^;)。

 そういう訳で、WMPの演奏リスト(のようなもの?)から、与えたファイル名を削除すれば良いと予想してるのですが、

 「MSDN、おめぇ~わけわかんねぇ~!」

って状態です(^^;)。

投稿日時 - 2016-04-20 08:00:48

お礼

 #2さんのお礼に書いたように、=""でもうまく行く場合があるのがわかりました。

 ありがとうございます。

投稿日時 - 2016-04-21 07:47:59

あなたにオススメの質問