Animo y gracias!!!
Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por tazvader » 11 Sep 2012, 10:25
Animo y gracias!!!
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por tazvader » 12 Sep 2012, 17:00
Todo esto esta basado en pelisalacarta-mediaserver-3.2.21.zip
1) descargar JWPlayer(http://www.longtailvideo.com/players/jw-flv-player/), descomprimirlo y dejar los ficheros JS y SWF en pelisalacarta\platformcode\mediaserver\template\jwplayer
2) Ficheros Modificados :
pelisalacarta\pelisalacarta.py
Añadir a partir de la linea 73
Código: Seleccionar todo
#jwplayer
elif self.path.startswith("/jwplayer/"):
f=open( os.path.join ( config.get_runtime_path() , "platformcode" , "mediaserver" , "template" , self.path[1:] ) , 'rb')
self.send_response(200)
if self.path.endswith(".swf"):
self.send_header('Content-type', 'application/x-shockwave-flash')
# logger.info(" SWF : "+self.path[1:])
elif self.path.endswith(".js"):
self.send_header('Content-type', 'text/js')
# logger.info(" JS : "+self.path[1:])
self.end_headers()
self.wfile.write(f.read())
self.wfile.close()
f.close()
#/jwplayer
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta
# Launcher
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urllib
import base64
import os
import binascii
import md5
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from core import config
from core import wiideoteca
from core.item import Item
from core import platform_name
from core import scrapertools
import logging.config
import logging
logging.config.fileConfig("logging.conf")
logger=logging.getLogger("wiimc")
#TODO: Pasar esto a ¿config?
VERSIONTAG = "3.2.21"
#from lib import cerealizer
#cerealizer.register(Item)
def get_content_type():
return "text/html"
def controller(plugin_name,port,host,path,headers):
# Lee la plantilla
file_plantilla = open( os.path.join( config.get_runtime_path() , "platformcode" , "mediaserver" , "template" , "page.html") )
plantilla_pagina = file_plantilla.read()
file_plantilla.close()
file_plantilla = open( os.path.join( config.get_runtime_path() , "platformcode" , "mediaserver" , "template" , "item.html") )
plantilla_item = file_plantilla.read()
file_plantilla.close()
itemlist_respuesta = []
respuesta = ""
try:
#jwplayer
JWPlayer = 0
#/jwplayer
# Menú principal
if path == "/"+platform_name.PLATFORM_NAME+"/" or path=="/"+platform_name.PLATFORM_NAME:
respuesta = plantilla_pagina.replace("{$page-title}","pelisalacarta")
import channelselector
channelslist = channelselector.getmainlist()
# Actualización automática de canales, actualiza la lista
if config.get_setting("updatechannels")=="true":
logger.info("Verificando actualización del channelselector")
from core import updater
actualizado = updater.updatechannel("channelselector")
if actualizado:
itemlist_respuesta.append( Item( url="http://"+host+"/"+platform_name.PLATFORM_NAME , title="¡Lista de canales actualizada¡" , thumbnail="http://pelisalacarta.mimediacenter.info/squares/Crystal_Clear_action_info.png", plot=channel.plot ) )
for channel in channelslist:
# Quita el canal de ayuda y el de configuración, no sirven en WiiMC
if channel.channel!="configuracion" and channel.channel!="ayuda":
itemlist_respuesta.append( Item(title=channel.title, url="http://"+host+"/"+platform_name.PLATFORM_NAME+"/"+base64.b64encode(channel.serialize()).replace("/","%2F"),thumbnail=channel.thumbnail, plot=channel.plot) )
else:
item = extract_item_from_url(path)
respuesta = plantilla_pagina.replace("{$page-title}",item.title)
if item.channel=="channelselector" and item.action=="channeltypes":
import channelselector
channelslist = channelselector.getchanneltypes()
for channel in channelslist:
itemlist_respuesta.append( Item( url = "http://"+host+"/"+platform_name.PLATFORM_NAME+"/"+base64.b64encode(channel.serialize()).replace("/","%2F"), title = channel.title, thumbnail = channel.thumbnail, plot=channel.plot) )
elif item.channel=="channelselector" and item.action=="listchannels":
import channelselector
channelslist = channelselector.filterchannels(item.category)
for channel in channelslist:
if channel.type=="generic" or channel.type=="wiimc":
channel.action="mainlist"
itemlist_respuesta.append( Item( url = "http://"+host+"/"+platform_name.PLATFORM_NAME+"/"+base64.b64encode(channel.serialize()).replace("/","%2F"), title = channel.title, thumbnail = channel.thumbnail, plot=channel.plot) )
#jwplayer
elif item.action=="JWPlayer":
file_plantilla = open( os.path.join( config.get_runtime_path() , "platformcode" , "mediaserver" , "template" , "Play-JWPlayer.html") )
plantilla_JWPlayer = file_plantilla.read()
file_plantilla.close()
respuesta = plantilla_JWPlayer.replace("{$page-title}",item.title)
respuesta = respuesta.replace("{$url}",item.url)
JWPlayer = 1
#/jwplayer
else:
itemlist,channel = getitems(item)
# Las listas vacías son problemáticas, añade un elemento dummy
if len(itemlist)==0:
itemlist.append( Item(title="(No hay elementos)") )
for item in itemlist:
if item.action=="search":
if item.server=="": item.server="none"
if item.url=="": item.url="none"
url = "http://%s/%s" % ( host+"/"+platform_name.PLATFORM_NAME , base64.b64encode( item.serialize() ).replace("/","%2F") )
if item.thumbnail=="":
item.thumbnail = "http://pelisalacarta.mimediacenter.info/squares/search.png"
itemlist_respuesta.append( Item(url=url, title = item.title, thumbnail=item.thumbnail, plot=item.plot) )
elif item.folder or item.action=="play" or item.action=="downloadall":
if item.server=="": item.server="none"
if item.url=="": item.url="none"
if item.title=="": item.title="Ver el video-"
if item.thumbnail=="":
#if item.server!="" and item.server.lower()!="directo":
# item.thumbnail = "http://pelisalacarta.mimediacenter.info/servers/"+item.server+".png"
#else:
if item.folder:
item.thumbnail = "http://pelisalacarta.mimediacenter.info/squares/folder.png"
else:
item.thumbnail = "http://pelisalacarta.mimediacenter.info/squares/file.png"
url = "http://%s/%s" % ( host+"/"+platform_name.PLATFORM_NAME , base64.b64encode( item.serialize() ).replace("/","%2F") )
itemlist_respuesta.append( Item(url=url, title = item.title, thumbnail=item.thumbnail, plot=item.plot) )
logger.info(" Nivel intermedio "+url)
else:
if item.thumbnail=="":
#if item.server!="" and item.server.lower()!="directo":
# item.thumbnail = "http://pelisalacarta.mimediacenter.info/servers/"+item.server+".png"
#else:
if item.folder:
item.thumbnail = "http://pelisalacarta.mimediacenter.info/squares/folder.png"
else:
item.thumbnail = "http://pelisalacarta.mimediacenter.info/squares/file.png"
itemlist_respuesta.append( Item(url=item.url, title = item.title, thumbnail=item.thumbnail, plot=item.plot) )
logger.info(" Video "+item.url)
itemlist_string =""
#jwplayer
if JWPlayer==0:
for item in itemlist_respuesta:
item_string = plantilla_item
item_string = item_string.replace("{$title}",item.title)
item_string = item_string.replace("{$url}",item.url)
item_string = item_string.replace("{$thumbnail}",item.thumbnail)
item_string = item_string.replace("{$plot}",scrapertools.htmlclean(item.plot))
itemlist_string = itemlist_string+item_string+"\n"
#/jwplayer
respuesta = respuesta.replace("{$itemlist}",itemlist_string)
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
return respuesta
def extract_item_from_url(requestpath):
logger.info("extract_item_from_url()")
# La ruta empleada en la petición
ruta = requestpath.split("?")[0]
logger.info("ruta="+ruta)
# El item serializado está codificado en base64
itemserializado = ruta.split("/")[2]
itemserializado = itemserializado.replace("%2F","/")
itemserializado = itemserializado.replace("%2f","/")
logger.info("item base64="+itemserializado)
import base64
item = Item()
item.deserialize(base64.b64decode(itemserializado))
logger.info("item: channel="+item.channel+", action="+item.action+", title="+item.title+", url="+item.url+", server="+item.server+", category="+item.category)
return item
def getitems(item):
logger.info("getitems")
itemlist = []
# Extrae los parámetros
channel = item.channel
accion = item.action
url = item.url
if url!="none":
if not "filenium" in url:
url = urllib.unquote_plus(url)
server = item.server
title = item.title
extra = item.extra
category = item.category
fulltitle = item.fulltitle
try:
if accion=="mainlist" and config.get_setting("updatechannels")=="true":
try:
logger.info("Verificando actualización del canal")
from core import updater
actualizado = updater.updatechannel(channel)
if actualizado:
itemlist.append( Item(title="¡Canal descargado y actualizado!") )
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
'''
# Obtiene un nombre válido para la cache
hashed_url = binascii.hexlify(md5.new(requestpath).digest())
cached_file = os.path.join( config.get_data_path() , "tmp" , "cache" , hashed_url )
logger.info( "Cache file must be "+cached_file )
# Si el fichero está en cache
if os.path.exists(cached_file):
logger.info( "Reading from cache" )
fichero = open( cached_file ,"rb")
itemlist = cerealizer.load(fichero)
fichero.close()
# Si no está en cache
else:
'''
logger.info( "Not cached" )
# El item que invocó es importante para obtener el siguiente
senderitem = Item( title=title , channel=channel, action=accion, url=url , server=server, extra=extra, category=category, fulltitle=fulltitle )
if "|" in url:
partes = urllib.unquote_plus(senderitem.url).split("|")
refered_item = Item(title=partes[0],url=partes[2],thumbnail="",server=partes[1],plot="",extra=partes[3])
logger.info( "refered_item title="+refered_item.title+", url="+refered_item.url+", server="+refered_item.server+", extra="+refered_item.extra)
else:
refered_item = Item()
# Importa el canal y ejecuta la función
try:
exec "from pelisalacarta.channels import "+channel+" as channelmodule"
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
try:
exec "from pelisalacarta import "+channel+" as channelmodule"
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
try:
exec "from core import "+channel+" as channelmodule"
except:
pass
# play - es el menú de reproducción de un vídeo
if accion=="play":
logger.info("ACCION PLAY")
if hasattr(channelmodule, 'play'):
logger.info("[launcher.py] executing channel 'play' method")
logger.info(channelmodule.__file__)
itemlist = channelmodule.play(senderitem)
senderitem = itemlist[0]
senderitem.folder=False
else:
logger.info("[launcher.py] no channel 'play' method, executing core method")
itemlist = menu_video(senderitem)
# play_video - genera una playlist con una sola entrada para que wiimc la reproduzca
elif accion=="play_video":
logger.info("ACCION PLAY_VIDEO")
logger.info("url="+senderitem.url)
senderitem.folder=False
itemlist.append( senderitem )
#jwplayer
senderitem2 = Item( title=title , channel=channel, action=accion, url=url , server=server, extra=extra, category=category, fulltitle=fulltitle )
senderitem2.url = senderitem.url
senderitem2.title = senderitem.title + " (JWPlayer)"
senderitem2.action="JWPlayer"
itemlist.append( senderitem2 )
#/jwplayer
# search - es el buscador
elif channel=="buscador" and accion=="mainlist":
logger.info("ACCION SEARCH (buscador)")
texto = requestpath.split("plx")[1]
exec "itemlist = buscador.do_search_results(texto)"
elif accion=="search":
logger.info("ACCION SEARCH")
texto = requestpath.split("plx")[1]
exec "itemlist = channelmodule."+accion+"(senderitem,texto)"
# findvideos - debe encontrar videos reproducibles
elif accion=="findvideos":
logger.info("ACCION FINDVIDEOS")
try:
exec "itemlist = channelmodule."+accion+"(senderitem)"
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
itemlist = findvideos(senderitem,channel)
elif accion=="descargar":
itemlist = download_item(senderitem,refered_item)
elif accion=="download_all":
itemlist = download_all(senderitem,refered_item)
elif accion=="add_to_favorites":
itemlist = add_to_favorites(senderitem,refered_item)
elif accion=="remove_from_favorites":
itemlist = remove_from_favorites(senderitem,refered_item)
elif accion=="add_to_downloads":
itemlist = add_to_downloads(senderitem,refered_item)
elif accion=="remove_from_downloads":
itemlist = remove_from_downloads(senderitem,refered_item)
elif accion=="remove_from_error_downloads":
itemlist = remove_from_error_downloads(senderitem,refered_item)
elif accion=="add_again_to_downloads":
itemlist = add_again_to_downloads(senderitem,refered_item)
elif accion=="send_to_jdownloader":
itemlist = send_to_jdownloader(senderitem,refered_item)
elif accion=="search_trailer":
itemlist = search_trailer(senderitem,refered_item)
elif accion=="add_serie_to_wiideoteca":
itemlist = wiideoteca.AgregarSerie(senderitem)
elif accion=="UltimoVisto":
itemlist = wiideoteca.UltimoVisto(senderitem)
else:
if senderitem.url=="none":
senderitem.url=""
exec "itemlist.extend( channelmodule."+accion+"(senderitem) )"
'''
# Lo almacena en cache
fichero = open( cached_file ,"wb")
cerealizer.dump(itemlist,fichero)
fichero.close()
'''
logger.info("Items devueltos")
for item in itemlist:
logger.info( " " + item.title + " | " + item.url + " | " + item.action)
except:
import traceback,sys
from pprint import pprint
exc_type, exc_value, exc_tb = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_tb)
for line in lines:
line_splits = line.split("\n")
for line_split in line_splits:
logger.error(line_split)
return itemlist,channel
def download_item(senderitem,refered_item):
itemlist = []
# Extrae todos los enlaces posibles
exec "from servers import "+refered_item.server+" as server_connector"
video_urls = server_connector.get_video_url( page_url=refered_item.url , premium=(config.get_setting("megavideopremium")=="true") , user=config.get_setting("megavideouser") , password=config.get_setting("megavideopassword") )
if len(video_urls)>0:
from core import downloadtools
titulo = senderitem.fulltitle
if titulo=="": titulo=refered_item.title
downloadtools.downloadtitle(video_urls[len(video_urls)-1][1],titulo)
itemlist.append( Item( title="Descarga finalizada" ) )
else:
itemlist.append( Item( title="El video ya no está disponible" ) )
return itemlist
def send_to_jdownloader(senderitem,refered_item):
itemlist = []
itemlist.append( Item( title="Opcion no disponible" ) )
def search_trailer(senderitem,refered_item):
itemlist = []
itemlist.append( Item( title="Opcion no disponible" ) )
def add_to_favorites(senderitem,refered_item):
from core import favoritos
favoritos.savebookmark(titulo=refered_item.title,url=refered_item.url,thumbnail="",server=refered_item.server,fulltitle=senderitem.fulltitle,plot="")
itemlist = []
itemlist.append( Item( title="El video %s" % senderitem.fulltitle ) )
itemlist.append( Item( title="ha sido añadido a favoritos" ) )
return itemlist
def remove_from_favorites(senderitem,refered_item):
from core import favoritos
favoritos.deletebookmark(refered_item.extra)
itemlist = []
itemlist.append( Item( title="El video %s" % refered_item.title ) )
itemlist.append( Item( title="ha sido eliminado de favoritos" ) )
return itemlist
def download_all(senderitem,refered_item):
from core import descargas
descargas.downloadall(senderitem)
itemlist = []
itemlist.append( Item( title="Fin de todas las descargas pendientes" ) )
return itemlist
def add_to_downloads(senderitem,refered_item):
from core import descargas
descargas.savebookmark(titulo=refered_item.title,url=refered_item.url,thumbnail="",server=refered_item.server,plot="")
itemlist = []
itemlist.append( Item( title="El video %s" % refered_item.title ) )
itemlist.append( Item( title="ha sido añadido a la lista" ) )
itemlist.append( Item( title="de descargas" ) )
return itemlist
def remove_from_downloads(senderitem,refered_item):
from core import descargas
descargas.deletebookmark(refered_item.extra)
itemlist = []
itemlist.append( Item( title="El video %s" % refered_item.title ) )
itemlist.append( Item( title="ha sido eliminado de la lista" ) )
itemlist.append( Item( title="de descargas" ) )
return itemlist
def remove_from_error_downloads(senderitem,refered_item):
from core import descargas
descargas.delete_error_bookmark(refered_item.extra)
itemlist = []
itemlist.append( Item( title="El video %s" % refered_item.title ) )
itemlist.append( Item( title="ha sido eliminado definitivamente" ) )
return itemlist
def add_again_to_downloads(senderitem,refered_item):
from core import descargas
descargas.mover_descarga_error_a_pendiente(refered_item.extra)
itemlist = []
itemlist.append( Item( title="El video %s" % refered_item.title ) )
itemlist.append( Item( title="ha sido movido a la lista" ) )
itemlist.append( Item( title="de descargas de nuevo" ) )
return itemlist
def menu_video(item):
itemlist = []
logger.info("menu_video url="+item.url+", server="+item.server+", fulltitle="+item.fulltitle)
from servers import servertools
video_urls,puede,motivo = servertools.resolve_video_urls_for_playing( item.server , item.url , video_password="" , muestra_dialogo=False)
if puede:
for video_url in video_urls:
itemlist.append( Item(channel=item.channel, title="Ver "+video_url[0], url=video_url[1], action="play_video") )
refered_item_encoded = urllib.quote(item.title.replace("|","-"))+"|"+urllib.quote(item.server)+"|"+urllib.quote(item.url)+"|"+urllib.quote(item.extra)
itemlist.append( Item(channel=item.channel, title="Descargar",action="descargar",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
if item.channel!="favoritos":
itemlist.append( Item(channel=item.channel, title="Añadir a favoritos",action="add_to_favorites",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
else:
itemlist.append( Item(channel=item.channel, title="Quitar de favoritos",action="remove_from_favorites",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
if item.channel!="descargas":
itemlist.append( Item(channel=item.channel, title="Añadir a la lista de descargas",action="add_to_downloads",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
else:
if item.category=="errores":
itemlist.append( Item(channel=item.channel, title="Quitar definitivamente de la lista de descargas",action="remove_from_error_downloads",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Pasar de nuevo a la lista de descargas",action="add_again_to_downloads",url=refered_item_encoded ) )
else:
itemlist.append( Item(channel=item.channel, title="Quitar de la lista de descargas",action="remove_from_downloads",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Enviar a jdownloader",action="send_to_jdownloader",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Buscar trailer",action="search_trailer",url=refered_item_encoded ) )
if item.category=="wiideoteca":
itemlist.append( Item(channel=item.channel, title="Marcar como Ultimo Episodio Visto",action="UltimoVisto",url=item.extra,fulltitle=item.fulltitle ) )
# Si no puedes ver el vídeo te informa
else:
itemlist.append( Item(title="No puedes ver ese vídeo porque...") )
if item.server!="":
if "<br/>" in motivo:
itemlist.append( Item(title=motivo.split("<br/>")[0]) )
itemlist.append( Item(title=motivo.split("<br/>")[1]) )
itemlist.append( Item(title=item.url) )
else:
itemlist.append( Item(title=motivo) )
itemlist.append( Item(title=item.url) )
else:
itemlist.append( Item(title="El servidor donde está alojado no está") )
itemlist.append( Item(title="soportado en pelisalacarta todavía") )
itemlist.append( Item(title=item.url) )
return itemlist
def findvideos(item,channel):
logger.info("findvideos")
url = item.url
title = item.title
thumbnail = item.thumbnail
plot = item.plot
fulltitle = item.fulltitle
# Descarga la pagina
from core import scrapertools
data = scrapertools.cachePage(url)
from servers import servertools
listavideos = servertools.findvideos(data)
itemlist = []
for video in listavideos:
scrapedtitle = video[0]
scrapedurl = video[1]
server = video[2]
itemlist.append( Item(channel=channel, action="play" , title=scrapedtitle , url=scrapedurl, thumbnail=item.thumbnail, plot=item.plot, server=server, fulltitle=fulltitle, folder=False))
return itemlist
3) Nuevo Fichero pelisalacarta\platformcode\mediaserver\template\Play-JWPlayer.html
Código: Seleccionar todo
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{$page-title}</title>
<link rel="stylesheet" href="/css/themes/default/jquery.mobile-1.1.0.css" />
<script src="/js/jquery.js"></script>
<script src="/js/jquery.mobile-1.1.0.js"></script>
<script type="text/javascript" src="/jwplayer/jwplayer.js"></script>
</head>
<body>
<div data-role="page" class="type-interior">
<div data-role="header">
<h1>{$page-title}</h1>
<!--a href="../../" data-icon="home" data-iconpos="notext" data-direction="reverse">Home</a>
<a href="../nav.html" data-icon="search" data-iconpos="notext" data-rel="dialog" data-transition="fade">Search</a-->
</div><!-- /header -->
<div data-role="content">
<div class="content-primary">
<ul data-role="listview" data-inset="true">
<div id="container" align="center">Loading the player ...</div>
<script type="text/javascript">
jwplayer("container").setup({
file: "{$url}",
height: 506,
width: 930,
modes: [
{ type: "html5" },
{ type: "flash", src: "/jwplayer/player.swf" },
{ type: "download" }
]
});
</script>
</ul>
</div><!--/content-primary -->
</div><!-- /content -->
<div data-role="footer">
<h4><a href="http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta">Saber más sobre Pelisalacarta</a> | <a href="http://www.mimediacenter.info/foro">Foro</a></h4>
</div>
</div><!-- /page -->
</body>
</html>
height: 506,
width: 930,
Una vez hecho todo lo anterior, a la hora de visualizar un video nos apareceran dos opciones :
- Ver 450p[VK] -> opcion normal, simplemente devuelve la url del video y el navegador se encarga de gestionarla.
- Ver 450p[VK] (JWPlayer) -> Abre una pagina en la que aparece un player que reproduce el video.
Solo tengo un pequeño problema que no he visto como solucionar :
- No funciona si pulsando sobre la opción. Para que funcione hay que abrir el enlace en una ventana/pestaña nueva.
Alguna idea??
Mejoras que se me ocurren:
- Solucionar el error que no permite simplemente pulsar sobre la opcion
- Opcion en la configuracion para que aparezca o no el nuevo "link"
- Solo dar la opcion de JWPlayer con los contenidos que puede reproducir
Publicidad
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por jesus » 13 Sep 2012, 18:45
Lo integraré en la próxima versión
![Smile :)](./images/smilies/icon_e_smile.gif)
¿Lo has probado en una tele de estas nuevas de LG/Samsung que tiene navegador? Eso molaría...
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por tazvader » 13 Sep 2012, 19:24
Como comento tengo el problema de que no carga la pagina si lo pulsas simplemente, hay que hacer "Abrir en nueva ventana" o "pestaña".
Es decir hablando en PC : "click" no funciona, shift + Click o Ctrl + Click si...
Hablando en Android : Pulsar sobre la opcion no funciona, pero si aguantas la pulsacion te aparece el menu de Abrir, Abrir en nueva ventana, etc... Al elegir abrir en nueva pestaña carga la nueva pagina.
Seguro que puedes ver que he hecho mal o no he terminado de hacer bien...
![Smile :)](./images/smilies/icon_e_smile.gif)
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por jesus » 17 Sep 2012, 23:31
Las nuevas teles y blurays si que tienen navegador, aunque no flash pero sí debería funcionar la versión html5.
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por tazvader » 18 Sep 2012, 08:26
Respecto a la tele, la mia no tiene navegador, no lo puedo probar. Revisare las televisiones de los conocidos a ver si alguna me sirve de para el testeo...
Re: Propuesta (Ver.HTML) : Añadir Jwplayer (O similar)
Mensaje por jesus » 18 Sep 2012, 21:50
Y los de LG también, incluido el smarty.
- Ayuda sobre plugins
- ↳ tvalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta (For Italian users)
- ↳ Problemi (Non mi funziona...)
- ↳ Domande (Come fare a...)
- ↳ Suggerimenti (Sarebbe bello che...)
- ↳ mywebtv
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ MediaExplorer
- ↳ Balandro
- ↳ Otros plugins
- ↳ Alfa
- ↳ Alfa (For Italian users)
- ↳ Tutoriales
- Ayuda sobre mediacenters
- ↳ XBMC / Kodi
- ↳ Plex
- ↳ Android
- ↳ Raspberry Pi
- ↳ Boxee
- ↳ WiiMC
- ↳ Enigma 2
- ↳ Otros media center
- Sugerencias
- ↳ Nuevos canales
- ↳ Mejoras
- Desarrolladores
- Comunidad
¿Qué es Mi media center?
Este es el foro oficial de soporte para pelisalacarta, tvalacarta y mywebtv.
También es un lugar para compartir tus experiencias con dispositivos multimedia y software media center, puede que encuentres algo interesante que ni siquiera sabías que se podía hacer.
Primeros pasos en Kodi
Si estás empezando con Kodi, o si estás interesado en sacarle más partido, puedes echar un vistazo a esta colección de video-tutoriales.
Aprenderás a crear y optimizar tu biblioteca, a instalar add-ons, a buscar subtítulos...
Cómo reportar un problema
Si tienes un problema en alguno de los plugins y quieres reportarlo, no olvides incluir el log.
Para que resulte útil tienes que activar la opción de "log completo" en el plugin, luego reiniciar Kodi y dar los pasos necesarios hasta que se produzca el problema.
Luego copia tu fichero de log, siguiendo las instrucciones que se describen en este enlace, e inclúyelo al final de la descripción de tu problema.
Aprende a programar para Kodi
Si sabes programar, esta serie de tutoriales que describen paso a paso cómo desarrollar tu propio add-on para Kodi.
Y si quieres añadir tus propios canales a pelisalacarta también te contamos paso a paso cómo hacerlo en este enlace.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados