AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

0
1

Buenas. Tengo un problemilla para acceder a la API de reproductor de Youtube desde un Webview. Lo que pretendo es cargar videos de Youtube en un WebView desde JavaScript con la API que tiene Youtube para ello. He probado con dos variantes: -Cargar un HTML en el WebView. Dentro del HTML tengo código JavaScript que me crea un objeto SWFObject con el que embeber el reproductor en cualquier parte de mi HTML. Y a partir de ahí varias funciones en JavaScript que hacen las funciones de cargar video, reproducir, pausar, etc.. Eso funciona, pero el problema es que cuando creas el objeto SWFObject le tienes que pasar el tamaño que quieres que tenga tu reproductor y para ellos debería saber de antemano la resolución de la pantalla en cada caso, y al fin y al cabo yo lo que quiero es que se ajuste al tamaño del WebView(como si fuera a pantalla completa). Con esta opción, puedo mandar mensajes JavaScript desde Cocoa fácilmente con WebView stringByEvaluatingJavaScriptFromString:

-La otra opción es cargar el reproductor directamente en el WebView sin embeberlo en un HTML con: [[WebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:]]]; De esta forma cargo el reproductor en el WebView y se ajusta completamente al el aunque lo redimensione, etc. Aquí el problema lo tengo en que no tengo el objeto SWFObject y por tanto no puedo mandar mensajes JavaScript a la API de Youtube...

Mi pregunta es: -Hay alguna forma de, cargando directamente el reproductor(sin bordes) en el WebView sin usar HTML, crear el objeto SWFObject y usar las funciones de la API de Youtube con ese objeto??

**NOTA: El objeto SWFObject se crea con: swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes, callbackFn)

id es una etiqueta de cualquier parte de un HTML donde asociamos nuestro reproductor a esa etiqueta, y donde se cargará el reproductor. Luego basta con hacer referencia a esa etiqueta y llamar a las funciones pertinentes de la API de Youtube Ej: id.cueVideoById(),id.loadVideo(), etc.

Un saludo.

preguntado 13 May '11, 02:21

idenjoe's gravatar image

idenjoe
1121


Para saber la resolucion de la pantalla (principal) basta con el siguiente código:

NSRect *resolution = [[NSScreen mainScreen] frame];
float width = resolution.size.width
float height = resolution.size.height

A partir de ahi podrás crear el WebView con ese tamaño que sabes de antemano.

Sobre la otra opción, este código no estoy tan seguro que funcione pero te lo paso para que pruebes:

id myFunction = [webView windowScriptObject];

 NSArray *args = [NSArray arrayWithObjects:
                @"http://...",
                ...,
                [NSNumber numberWithFloat:width],
                [NSNumber numberWithFloat:height],
                ...
                nil];

[myFunction callWebScriptMethod:@"embedSWF"
            withArguments:args];

O directamente:

[myFunction evaluateWebScript:
           @"embedSWF(’http://’, ..., ‘1920’, ‘1080’, ...)"];
enlace permanente

respondido 13 May '11, 13:25

Soulless's gravatar image

Soulless
59161421

Tu respuesta:
Activar/desactivar vista previa

Sobre esta pregunta

Etiquetas de la pregunta:

×42
×15
×13
×7
×3

Pregunta realizada el: 13 May '11, 02:21

Pregunta visitada: 1,168 veces

Última modificación: 13 May '11, 13:25

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación