Netflix インスタント プレーヤー (silverlight) 用の Javascript API はありますか? サポートされ、文書化されているものが望ましいですが、サポートされておらず、文書化されていないものでも構いません。これは個人的なプロジェクト用です。
特定の時間に再生/一時停止してシークできるようにしたいと思います。
Netflix インスタント プレーヤー (silverlight) 用の Javascript API はありますか? サポートされ、文書化されているものが望ましいですが、サポートされておらず、文書化されていないものでも構いません。これは個人的なプロジェクト用です。
特定の時間に再生/一時停止してシークできるようにしたいと思います。
これを掘り下げるのは楽しかったし、あなたの答えを見つけたと思います。
まず、Netflix の誰かからの (確かに古い) 投稿を見つけました。彼らのライセンス要件により、プレーヤーを外部から制御する方法を提供することは禁じられていました (すべてが netflix ブランドのアプリケーションにまとめられ、プレーヤーを外部から使用すると、netflix プレーヤーを本来あるべきでない場所に埋め込むことができます。) その回答はここにあります (4 年前のものですが、あまり変わっていないと思います。)
http://developer.netflix.com/forum/read/54172
「すぐに見る」ページを自分でスヌーピングしてみましたが、netflix.SilverLight や netflix.SilverLight.MoviePlayer などのオブジェクト (プラグインに関する詳細を返す getPlugin() メソッドとフック可能なイベントがありますが、メソッドはありません) があります。コントロール用) ですが、ほとんどの場合、プレーヤー ビューポートのサイズを公開する必要があります。特に、ページに配置するために必要なものがあります。どのオブジェクトにも、それらがムービー プレーヤーとやり取りしたことを示唆するものは何も見つかりませんでした。
また、プレーヤーのバイナリを入手し、それらを調べたところ、[ScriptableMember] で装飾された PlayMovie()、StopMovie()、ShowCurtain()、HideCurtain() というメソッドを内部に持つ ScriptInterface オブジェクトを見つけました。
次に、プレーヤー バイナリに Netflix.Silverlight.CBPApp.HostedPlayer という名前の別の名前空間があることに気付きました。この名前空間には、独自のインターフェイスである HostedPlayerScriptInterface があります。これには、再生位置に関するデータ、再生速度の増減、一時停止、再生、再生位置の設定、再生状態のクエリなど、必要なものがすべて含まれています。これらはすべて [ScriptableMember] として装飾されています。
今、私はあなたの心を壊します-(何らかの理由で)このインターフェースは[ScriptableType]として公開されていないようです.私の理解では、これはjavascriptからアクセスできるための要件です. 実際、このように公開されているように見えるのは、プレイヤーが起動するイベントだけです。私の推測では、このコードは他のパートナーと統合するためのものか、ビデオ プレーヤーの元のコードを継承した誰かから残されたものですが、この [ScriptableType] パラメーターは意図的に省略されているようです。「ホストされる」ようにビルドされたバイナリを要求する方法があるかもしれませんが、それが何を意味するのかはわかりません。すぐにやめてください。
失望に終わる長々とした回答で申し訳ありませんが、現時点では、これを行う方法は実際にはないようです. 基本的にキーボード コントロールをエミュレートするブラウザ ウィンドウにキーストロークを送信することになるいくつかの提案を見てきましたが、これは明らかにあなたが探しているものではないので、ここでは答えとして「いいえ」とします。 . :)
編集:
さらなる調査により、これは私が思っていた行き止まりではないことが示されています。掘削が完了したら、これを更新します。
編集2:
そのため、Netflix プレーヤーをだまして、ホスト プレーヤー モードで実行されていると思わせる必要があるようです。渡すことができる構成オプションがいくつかありますが、具体的にどのように行うかはわかりません。プレーヤーの初期化ですべての設定が完了したようです。おそらく、ある種のブックマークレットがページをリロードして変更を挿入できますか? または、プレーヤーをリロードして設定を変更するだけです。
this.PlayerViewModel = (applicationConfiguration.PlayerConfiguration.EnableHostedPlayerControl ? new HostedPlayerViewModel() : new GenesisPlayerViewModel());
思いついたところです。HostedPlayerViewModel を使用すると、次のコードが実行されます。
HtmlPage.RegisterScriptableObject("HostedPlayerControlScriptInterface_1", this.b)
私が正しく読んでいれば、netflix Silverlight プレーヤーを含む DOM オブジェクトを取得して呼び出すことで、この登録済みオブジェクトにアクセスできます。
silverlightPlayer.content.findName('HostedPlayerControlScriptInterface_1').WhateverMethod()
私はこの JavaScript 相互運用機能の多くを行っていないので、ドキュメントから推測されますが、JavaScript コントロール API がそこにあるかのように見えます。ホストされたモード。
ここで終了する必要がありますが、これで良いスタートが切れることを願っています。ホストされたプレーヤーの Javascript API ファイルの内容をダンプしたので、ホストされたモードでプレーヤーを取得すると公開されるメソッドを確認できます。
幸運を!
あなたが文書化されていないと述べたので...
Silverlight では、メソッドを JavaScript に直接公開するには[ScriptableType]
、そのクラスと[ScriptableMember]
それ自体に属性が必要です。Netflix プレーヤーの XAP ファイルを開き、メイン アセンブリを逆アセンブルして、[ScriptableMember]
それらに関連付けられているメソッドを検索してみてください。これはまったく役に立たないかもしれませんが、それでも試すことができるものです.
おそらく、Netflix の公式 Web ページが探し始める場所でしょうか?
Boxee はある時点でそれを制御できた可能性があります: http://dir.boxee.tv/apps/helper2/netflix.js
(他のいくつかのフォークも同様に存在する可能性があります)。
また、netflix が HTML5 実装に移行すると、何らかの形でプラグインが再生を制御できるようになるのではないかと思います。GL!