問題タブ [windows-media-player]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# で Windows Media Player とやり取りする方法
Windows Media Player をアプリケーションと同期する必要があります。WMP が ListBox で再生している現在の曲をリアルタイムで表示し、WMP が曲を変更すると更新されます。どうすればこれを実装できますか?
java - できればJavaからWindows Media Playerをプログラムで制御する
すでに広範囲に展開されている既存の Java アプリケーションに機能を追加しています。(よって、よほどやむを得ない理由がない限り触れられない設計上の決定がいくつかあります。) このアプリは、小さなローカル TV ネットワークにオーディオとビジュアルをブロードキャストする PC を制御します。現在、主に静的なスライドをブロードキャストしていますが、クライアントの裁量で BGM を流すこともできます。バックグラウンド ミュージック (CD、ローカル ミュージック ファイル、インターネット ラジオなど) は、Windows Media Player によって処理されます。
現在のプロジェクトでは、静的スライドにナレーションを追加しています。ナレーションが再生されたら、WMP 出力を一時的に停止またはミュートする何らかの STFU 信号を送信する必要があります。だから私の中心的な質問は、これを達成するための最良の方法は何ですか?
WMP に ActiveX インターフェイスがあることは知っていますが、ActiveX/COM の経験はありません。確かに、私は学ぶことができます (おそらくそうするでしょう) が、この時点では、簡単な解決策、技術的には実現可能だが苦痛を伴う解決策、実際には袋小路である「解決策」を区別するのに十分な立場にありません。
Java ベースのソリューションでは、Jacob のように Java->ActiveX ブリッジを使用する必要がありますか? それともやり過ぎですか?
または、私は完全に間違ったツリーを吠えていますか? 完全に別の言語で記述された小さなコマンドライン実行可能ファイルをデプロイし、Runtime.exec() を介してそれらにアクセスすることは確かに喜んで行います。これは、(たとえば) VisualBasic が汚れを単純にするようなものですか? (VB も私のスキルセットには含まれていませんが、この仕事に適したツールである場合は学習します。それが適切なツールかどうかはわかりません。Google は、WMP を VB GUI に組み込む例をたくさん教えてくれました。 ; VB コマンド ライン スクリプト、それほど多くはありません。)
最後に、もう 1 つ重要な点があります。WMP インスタンスは、Java アプリではなく、ユーザーによって開始されます。それが違いを生むかどうかはわかりませんが、言及する価値があると考えました.
誰かが私に提供できる洞察を前もって感謝します。
activex - Windows Media Player が私を無視する
私は、Java 経由で Windows Media Player を制御することについて、しばらく前にここに質問した者です。 私は進歩しましたが、厄介な問題にぶつかったので、助けを求めて戻ってきました.
前回得たアドバイスに従い、Jacob をインストールしました。テスト スクリプトから次の行を実行します。
...WMP がポップアップし、SomaFM が再生されます。「うわっ!」おもう。「これで解決しました!」
作成後にこのオブジェクトと対話するときを除いて、再生中の WMP インスタンスとは何の関係もないようです。このコードを実行すると:
...次の出力が得られます。
これは、次の点を除いて、十分無害に思えます
- 「50」の音量は、プレーヤーの音量が実際に設定されている場所とは関係がなく、
- setProperty の呼び出し後、プレーヤーの音量は実際には変化しません。
他のプロパティも試してみましたが同じです。プロパティの値はプレイヤーが実際に行っていることとは関係がないようで、プロパティを変更すると操作されるオブジェクトの状態が変化するように見えますが、実際のプレーヤーには影響しません。 (スクリプトを実行するたびにまったく同じ出力が得られるため、「ボリューム」をいじるときに変更しているものは何でも、コードの外部には永続性がありません。)
明らかに私は何か間違ったことをしていますが、何を理解しようとやみくもに手探りしています。何がうまくいかないのか、または次に何を試すべきなのかについて、誰かが私に洞察を提供できますか?
(注: 「WMPlayer.OCX」が正しい入力パラメータであるかどうかさえ確信が持てません。これが見つかるまで、レジストリの HKEY_CLASSES_ROOT にありそうなエントリを試してみました。)
誰かが提供できる助けを前もって感謝します。
編集、2009 年 4 月 15 日: EZ JCom という会社の製品の中に、WMP 固有のパッケージを見つけました。以前見たのとまったく同じ方法で失敗したため、Jacob の単なるラッパーであるか、WMP ActiveX/COM インターフェイスが明らかに壊れています。(待って、なぜ「どちらか」と言ったのですか?)
私はカスタマーサービスとチャットしました. 彼らは、動作中の WMP コードの例として提供された非コンパイル サンプル コードを修正するのを手伝ってくれましたが、ボリュームの取得/設定メソッドがどのように機能するかについての洞察を求めて彼らにせがんだところ、次のようになりました。
「申し訳ありませんが、ここでは WMP の詳細な専門知識を利用できません。EZ JCom は、Java と WMP などの他のプログラムとの間のブリッジ ビルダーにすぎません。」
私が評価していた彼らのパッケージは、実際には「wmp.WindowsMediaPlayer」と呼ばれていることに注意してください。もし私がそれを機能させていたら、私は上司にライセンスのために600ドルを払うように説得しなければならなかったでしょう. 彼らが実際に自社製品に関する専門知識を持っている場合、彼らは何を請求するのだろうか.
だから、本当の進歩はありません。共有したいと思っただけです。
編集、2009 年 4 月 20 日: ええ、私はまだこれを突っついています。私の現在の動作理論では、ボリューム設定を取得するには、リモートで WMP にアクセスする必要があるというものです。IWMPRemoteMediaServices および IServiceProvider インターフェイスについての言及を見てきましたが、後者の QueryService メソッドは前者へのポインターを提供します。残念ながら、IServiceProvider を取得する方法がわかりません。Windowsの「システム」オブジェクトからアクセスできるという言及を見てきましたが、そのオブジェクトを取得する方法がわかりません。(そして、「システム」という言葉は Java にかなり深く関わっているため、Google はノイズとシグナルの比率を非常に高く評価しています。) System.dll を表す COM オブジェクトをどのように手に入れるかについて誰かアドバイスがあれば、ぜひ教えてください。聞こえる。
編集、2009 年 4 月 21 日: 明確化: これは XP システム上にあります。
また、私の調査では、WMP オブジェクトと対話するだけでは不十分であることが示唆されています。話しかけられるように、それよりもしっかりとラップする必要があります。多くの C++ を含む WMP SDK がありますが、コードに対する Microsoft Visual C++ 拡張機能に依存しているように見えますが、それは私が持っていないものであり、無料で提供されていません。(さらに、私は 12 年間 C++ を使用していません。) C# でそれが可能であることは知っていますが、Java の外に出る場合は、ソリューションをスタンドアロンの実行可能ファイルにする必要があり、.NET はインストールされていません。関連するマシン。
編集、2009 年 4 月 22 日: 以下の Mark の回答に従って、WinUser.h から APPCOMMAND_MEDIA_* 定数を掘り出し、NativeCall APIを利用する次のコードを試しました。
これにより、次の結果が得られます。
...しかし、実際にはメディアプレーヤーには影響しません。
APPCOMMAND_MEDIA_PLAY_PAUSE (14) でも試してみましたが、これは異なる戻り値 (20) を返しますが、何もしません。
FWIW、これを実行可能なオプションにするためには、個々の PLAY/PAUSE コマンドを機能させる必要があります。やみくもに状態を切り替えるだけでは、開始時にプレーヤーがどの状態にあるかわからないため、役に立ちません。
私が間違っていること、または他に何を試すことができるかについて、誰かアドバイスはありますか?
xml - リストから1つのファイルを再生してもWindowsメディアサーバーが停止しない
次のようなASXメタファイルによってトリガーされたWindowsMediaオーディオを再生しています。
おそらくお分かりのように、可能であればmedia1.company.comでファイルを再生し、最初のファイルが失敗した場合はmedia2.company.comでファイルを再生し、両方が失敗した場合は謝罪を再生することになっています。
実際に起こることは、3つすべてが聞こえるということです。フェイルオーバープロセスはうまくいかないようで、サーバーは最初のファイルが正常に再生されたことを認識していません。
これを修正するために何ができるでしょうか?サーバー設定ですか?XML形式に何か問題がありますか?
windows-media-player - Windows Media Playerを一時停止/再生するための最も簡単で迅速な方法は何ですか?
WindowsMediaPlayerをリモートで再生および一時停止する簡単な方法を取得しようとしています。ここでSOに関するいくつかの質問を読んだ後、ほとんどの人がC#、Java、COM、ActiveXについて話していることに気付きました。これは私のプロジェクトにとって少しやり過ぎのようです。WMPを台無しにする簡単なインターフェースはありますか?私が好むアプローチは、Pythonモジュールで、何かを非常に高速にスクリプト化して、5分でデプロイできるようにすることです。派手すぎるものはありません。
javascript - addEventListener&wmpが期待どおりに機能しない
WMPプレーヤーオブジェクトがあり、プレーヤーに送信されるScriptCommandsをインターセプトするイベントリスナーを追加しようとしています。WMPオブジェクトにアタッチされる代わりに、コールバックがすぐに呼び出され、ScriptCommandsがインターセプトされません。
これを実行すると、initアラートの前にスクリプトアラートが表示されます。これが発生する理由を誰かが知っていますか?
wpf - WPF MediaElement コントロールからの MediaPlayer 例外のキャッチ
WPF の MediaElement でビデオを再生しています。
それは何千回も何度も何度も働いています。
ブルー ムーンに 1 回 (週に 1 回など)、Windows 例外が発生します (ワトソン博士のクラッシュのダイアログをご存知ですか??)。MediaElment はエラーを公開しません。ただクラッシュし、見苦しいクラッシュ レポートが画面に表示されたままになります。
「このレポートを表示」すると、実際にクラッシュしたのは MediaPlayer であることがわかります。クラッシュ レポートのポップアップを無効にできることはわかっていますが、何が問題なのかを突き止めたいと思っています。
ワトソン博士のキャプチャの結果をキャプチャする方法がわかりませんが、より良いキャプチャ方法についてアドバイスがあれば、ダイアログを開いています。これは、私のアプリケーションを指し、次に wmvdecod.dll を指すデータの最初の行です。
AppName: ScottApp.exe AppVer: 2.2009.2291.805 AppStamp:4a36c812 ModName: wmvdecod.dll ModVer: 11.0.5721.5145 ModStamp:453711a3 fDebug: 0 オフセット: 000cbc88
そしてWinイベントログから。(同情報)
イベントの種類: エラーイベント ソース: .NET ランタイム 2.0 エラー報告イベント カテゴリ: なしイベント ID: 1000 日付: 2009 年 7 月 13 日時刻: 10:20:27 AM ユーザー: N/A コンピューター: 28022 説明: アプリケーション ScottApp のエラー。 exe、バージョン 2.2009.2291.805、スタンプ 4a36c812、エラー モジュール wmvdecod.dll、バージョン 11.0.5721.5145、スタンプ 453711a3、デバッグ? 0、障害アドレス 0x000cbc88。
c# - Windows Media Player SDKを使用して、特定の位置でビデオを停止します
Windows Media Player SDKを使用して特定の位置でビデオを停止する方法はありますか?プレーヤーを埋め込むためにC#を使用しており、IWMPControls3インターフェイスに位置または時間の観点から特定の時点で停止機能があるかどうかを確認しようとしています。それができるのなら、どうやってそれをするのですか?
c# - WindowsMediaPlayerで現在再生中の曲を取得する
C#を使用して、Windows Media Playerで現在再生されている曲やアーティストなどの名前を取得するにはどうすればよいですか?MSNメッセンジャー/グーグルトークのようなアプリケーションはこれを行います。ありがとう