.NET Windows Media Playerライブラリを使用して、Windows Media Playerのさまざまなファイルプロパティ(ユーザー評価など)をプログラムで取得および変更することができました。 Player.openPlayer(url)
呼び出しで、同じライブラリを使用してWindows Media Playerインスタンスを制御(再生、停止、次など)したいと考えています。理論的には、これはPlayer.controlsオブジェクトを通して非常に可能でなければなりませんが、私がそれらにアクセスするときにはコントロールのどれも利用できません。ほとんどのPlayerプロパティ/メソッド/イベントは、コントロールオブジェクトを除いて利用できます。ここで私が試したものを説明するためにいくつかのサンプルコードは次のとおりです。IronPythonを使用してWindows Media Playerインスタンスを制御する問題
import clr
clr.AddReferenceToFile("Interop.WMPLib.dll")
from Interop.WMPLib import WindowsMediaPlayerClass
wmp = WindowsMediaPlayerClass()
wmp.openPlayer(r"C:\Users\Public\Music\Sample Music\Kalimba.mp3")
これは正常に動作しますが、私は次の操作を行うとき:
print wmp.controls.isAvailable("play").ToString()
print wmp.controls.isAvailable("pause").ToString()
print wmp.controls.isAvailable("stop").ToString()
...
を、私は、各制御のための偽得ます。自分の(単純な)アプリケーションでこれらのコントロールを利用できないのはなぜですか?私はおそらくこれについて間違った方法をとっていますか?私はWMP 12を使用していますので、それ以上の互換性があります。私は本当に別のAPIを使用しないことを好むだろうが、私はこの時点で何か試してみたい。ここで
を参照のドキュメントです:http://msdn.microsoft.com/en-us/library/dd564034%28v=vs.85%29.aspx
編集:クイックフィックスは、今の保持しているが、私はまだ、まだ実際の解決策を見つけていません。
質問は全く不明ですか? – covertCoder
いいえ、それは知識の非常にまれな交差点を必要とします - IronPythonを使用してWMPを制御する最初の人物かもしれません。 :) 'isAvailable'を無視して' play() 'を呼び出すとどうなりますか? –
他のすべての制御機能と同じことは起こりません。他の関数はエラーを返しませんが、意図した機能を実行しません。私の現在のクイックフィックスは、新しいプレイリスト/メディアファイルを開くたびにPlayer.openPlayerを呼び出すことですが、これはWMPインスタンスを点滅させるか、最悪の場合、私がやっていることから重視します。 – covertCoder