Admira API Content HTML5

Admira API content HTML5 es el servicio disponible para poder comunicarse desde un contenido HTML al player de Admira via Javascript. A continuación se describen las funciones básicas de dicha API.

Para poder utilizar las funcionalidades de Admira API Content HTML5, es necesario disponer del script, proporcionado por Admira.

Una vez añadido como adjunto y incluido en el HTML principal, se puede invocar de la siguiente manera:

<script>
var api_obj = null;

function on_load(){
    api_obj = new admira_api_content();
    api_obj.onReady = function(){
        console.log(«Ready !»);
    };
    api_obj.onStart = function(){
        console.log(«Start !»);
    };
}
</script>
<body onLoad=”on_load();”>

Eventos

Aqui se explican los eventos básicos de API Content.

  • onReady: se produce cuando el player ha conseguido precargar el contenido HTML con éxito, es decir, el HTML ha sido cargado dentro del iFrame. En este punto el iFrame sigue en DISPLAY:NONE

  • onStart: se produce cuando el player pone en “PLAY” el contenido. Cualquier animación o reproducción de elementos debe iniciarse aquí. En este punto el iFrame sigue en DISPLAY:INLINE

Funcionalidades

API content también permite enviar mensajes a player HTML5 para indicarle diferentes acciones a realizar:

  • API_DURATION: Cambia la duración del contenido que se está reproduciendo

  • API_FINISH: Finaliza el contenido que se está reproduciendo

  • API_CONDITION: Escribe una condición para poder ser leída posteriormente por el player con las capacidades de Playlist condicional y Triggers de condiciones

  • API_WRITE_FILE: Permite escribir datos de texto a un fichero en local

  • API_READ_FILE: Permite leer un fichero de texto local

Nota

Estas funcionalidades están en constante desarrollo y mejora. Para cualquier cuestión, no dudes en reportar a soporte@admira.com.

Nota

Para versiones de app inferiores a z19.05.30, cuando se quiere obtener el id del player, es necesario poner la llamada dentro de onStrat. Para las versiones posteriores a z19.05.30, esta incluida, se puede poner dentro de onReady. A continuación se muestra un ejemplo de cómo habría que pedir el id del player en ambos casos.

Versión de la aplicación anterior a z19.05.30

my_api.onReady = function(){
    console.log("Ready !”);
};

my_api.onStart = function(){

console.log(“onStart”);

my_api.send("api_command",{command:my_api.API_PLAYER_INFO,params:{'callback':"onGetInfo"}});

};

Versión de la aplicación igual o posterior a z19.05.30

my_api.onReady = function(){
    console.log("Ready !”);

    my_api.send("api_command",{
        command:my_api.API_PLAYER_INFO,params:{
        'callback':"onGetInfo"
            }
        });
    };

    my_api.onStart = function(){

    console.log(“onStart”);
};

Ejemplos de funciones

# API_DURATION:

api_obj.send("api_command",{
    command:api_obj.API_DURATION,
    params: {
        duration:30
    }
});

→ Cambiará la duración, donde 30 es el número de segundos a partir del momento de la llamada a API.

# API_FINISH:

api_obj.send("api_command",{
    command:api_obj.API_FINISH
});

→ Finalizara el contenido de inmediato.

# API_CONDITION:

var condition_object = {
    'id':01,
    'filename':internet_connected.xml’,
    'value':1,
    ‘write’:true
};

api_obj.send("api_command",{
    command:api_obj.API_CONDITION,
    params:condition_object
});

→ Escribirá el valor de la condicion para “Internet Connected”.

# API_WRITE_FILE:

var file_object = {
    'path': ‘./log’,
    'filename':hello.txt’,
    'text':’ Hello World !
};

api_obj.send("api_command",{
    command:api_obj.API_WRITE_FILE,
    params:file_object
});

→ Escribirá “Hello World!“ en ./content/hello.txt

# API_READ_FILE:

function onFileReadComplete(data){
    console.log("HTML onFileReadComplete data : "+data);
}

var file_object = {
    'path': ‘./log’,
    'filename':hello.txt’,
    'callback': ‘onFileReadComplete’
};

api_obj.send("api_command",{
    command:api_obj.API_READ_FILE,
    params:file_object
});

→ Leerá ./content/hello.txt y enviara el resultado al callback : onFileReadComplete

# API_PLAYER_INFO:
**Ejemplo completo obtener player_id y usarlo (versiones app inferiores a z19.05.30)

<script>

my_api = new admira_api_content();

var started = false;
var playerId = 0;

if (typeof(Storage) !== "undefined") {
    playerId = localStorage.getItem("playerID");
    myFunction(playerId);
}

if(playerId == 0){
    //Cuando inicia el player (Carga el HTML)
    my_api.onReady = function () {
        setTimeout(function(){my_api.onStart()},time);
    };

    //Cuando emite el HTML
    my_api.onStart = function () {
        clearTimeout(time)
        if(!started){
            my_api.send("api_command", { 
                command: my_api.API_PLAYER_INFO, params: { 'callback': "onGetInfo" 
                } 
            });
        }
    started = true;
    };
    
    my_api.onEvent = function (e) {
        if (started) {
         if (e.action == my_api.API_PLAYER_INFO) {
                if (typeof (e.msg.callback) !== "undefined") {
                    eval(e.msg.callback)(e.msg.data);
                }
            }
        }
    };
}


function onGetInfo(data) {
    try {
        if (data) {
            if (data.PlayerController && data.PlayerController.player_id) {
                playerId = data.PlayerController.player_id;
                localStorage.setItem("playerID", playerId);
                myFunction(playerId);
            }
        }
    }
    catch (e) {
        document.getElementById("contenedor").innerHTML = e;
    }
};

</script>
# API_PLAYER_INFO:
**Ejemplo completo obtener player_id y usarlo (versiones app iguales o superiores a z19.05.30)

<script>

my_api = new admira_api_content();

var started = false;
var playerId = 0;
var time = 2000;

if (typeof(Storage) !== "undefined") {
    playerId = localStorage.getItem("playerID");
    myFunction(playerId);</p>
}

if(playerId == 0){
    //Cuando inicia el player (Carga el HTML)
    my_api.onReady = function () {
        my_api.send("api_command", { 
            command: my_api.API_PLAYER_INFO, params: { 
                'callback': "onGetInfo" 
            }
        });
    };

    //Cuando emite el HTML
    my_api.onStart = function () {
        started = true;
    };
    my_api.onEvent = function (e) {
        if (started) {
            if (e.action == my_api.API_PLAYER_INFO) {
                if (typeof (e.msg.callback) !== "undefined") {
                    eval(e.msg.callback)(e.msg.data);
                }
            }
        }
    };
}

function onGetInfo(data) {
    try {
        if (data) {
            if (data.PlayerController && data.PlayerController.player_id) {
                playerId = data.PlayerController.player_id;
                localStorage.setItem("playerID", playerId);
                myFunction(playerId);
            }
        }
    }
    catch (e) {
        document.getElementById("contenedor").innerHTML = e;
    }
};
</script>

Last updated