me he divertido cavar en esto, y creo que he encontrado la respuesta. Para empezar, encontré una publicación (ciertamente antigua) de alguien en Netflix que afirmaba que sus requisitos de licencia les prohibían proporcionar formas de controlar el reproductor de forma externa (todo lo que necesitaba estar envuelto en una aplicación de marca Netflix, y proporcionar la forma de interactuar con el jugador externamente le permitiría incrustar el reproductor de netflix en lugares donde no debería ir). Puede encontrar esa respuesta aquí (aunque tiene cuatro años, supongo que no mucho ha cambiado)
http://developer.netflix.com/forum/read/54172
Intenté husmear en la página de "ver al instante" y hay objetos como netflix.SilverLight y netflix.SilverLight.Mo viePlayer (que tiene un método getPlugin() que devuelve algunos detalles sobre el complemento y eventos aptos para conectarse, pero no tiene métodos de control), pero en su mayoría tiene que ver con exponer el tamaño de la ventana gráfica del reproductor, entre otras cosas necesarias para ubicarlo en la pagina. Realmente no pude encontrar nada en ninguno de los objetos que sugirieron que interactuaban con el reproductor de películas que parecían permitirme acceder a él.
También enganché los archivos binarios del jugador, y husmeé en ellos encontré un objeto ScriptInterface internamente con los métodos de [ScriptableMember] -decorated llamados PlayMovie(), StopMovie(), ShowCurtain(), HideCurtain().
Luego, me di cuenta de que hay otro espacio de nombres en los binarios del reproductor llamado Netflix.Silverlight.CBPApp.HostedPlayer, que tiene su propia interfaz - HostedPlayerScriptInterface. Esto tiene todo lo que desee - datos sobre posición de juego, controles para aumentar y disminuir la velocidad de reproducción, pausar, jugar, configurar la posición de juego, consultar el estado de reproducción, etc. Todos estos están decorados como [ScriptableMember] s.
Ahora te rompo el corazón, parece que (por cualquier razón) esta interfaz no está expuesta como [ScriptableType], que a mi entender es un requisito para poder acceder a ella desde javascript. De hecho, las únicas cosas que parecen estar expuestas de esta manera son los eventos que el jugador dispara.Supongo que este código es para integrarse con otros socios, o sobrante de alguien a quien heredaron el código original para el reproductor de video, pero parece ser intencional que este parámetro [ScriptableType] se omita. Puede haber una manera de solicitar un binario que esté diseñado para ser 'Hosted', aunque no estoy seguro de lo que eso significa, y también sospecho que será transparente para la gente que está mirando lo que estás tratando de hacer y tener un deja de ponerlo rápidamente.
Perdón por la respuesta larga que termina en decepción, pero parece que a partir de ahora no hay realmente una manera de hacer esto. He visto algunas sugerencias que básicamente equivalen a enviar pulsaciones de teclas a la ventana del navegador que emulan los controles del teclado, pero esto claramente no es lo que estás buscando, así que voy a ir con 'no' como respuesta aquí . :)
Editar:
más investigación está mostrando este no es el callejón sin salida que pensé que era. Voy a actualizar esto una vez que termine de cavar.
Edición 2:
Por lo tanto, parece que necesita para engañar al jugador de Netflix en el pensamiento de que se está ejecutando en modo de jugador alojada. Hay algunas opciones de configuración que se pueden pasar, pero no estoy seguro de cómo, específicamente, harías eso. Parece que todo está configurado en la inicialización del jugador. ¿Tal vez algún tipo de marcador podría volver a cargar la página e inyectar un cambio? O tal vez simplemente vuelva a cargar el reproductor y cambie la configuración.
this.PlayerViewModel = (applicationConfiguration.PlayerConfiguration.EnableHostedPlayerControl ? new HostedPlayerViewModel() : new GenesisPlayerViewModel());
Es donde me di cuenta. Cuando se utiliza el HostedPlayerViewModel, este código se ejecute:
HtmlPage.RegisterScriptableObject("HostedPlayerControlScriptInterface_1", this.b)
la que si estoy leyendo correctamente le permitirá acceder a este objeto registrado por conseguir el objeto DOM que contiene el reproductor de Netflix Silverlight y llamando
silverlightPlayer.content.findName('HostedPlayerControlScriptInterface_1').WhateverMethod()
Tenga en cuenta que no he hecho muchas de estas cosas de interoperabilidad javascript, gran parte de esto se infiere de la documentación, pero parece que hay una API de control de JavaScript, es solo una cuestión de engañar al jugador para que funcione en modo Hosted.
Tendrá que parar aquí, pero espero que esto le dé un buen comienzo. He descargado los contenidos de ese archivo alojado de API de JavaScript para que pueda ver los métodos que se expondrán una vez que logre obtener el reproductor en modo Hosted.
http://pastebin.com/UeN3NFMg
Buena suerte!
Ver también http: // stackoverflow.com/questions/9195337/use-javascript-to-pause-jump-to-position-and-adjust-volume-in-netflixs-silver y para controlar el reproductor HTML5, consulte http://stackoverflow.com/q/27927950/32453 – rogerdpack