Couche d'automatisation

Table des matières

Rationalisez votre production avec la couche d'automatisation de mimoLive

Vous êtes actuellement en train de consulter le contenu d'un espace réservé de YouTube. Pour accéder au contenu réel, cliquez sur le bouton ci-dessous. Veuillez noter que ce faisant, des données seront partagées avec des providers tiers.

Plus d'informations

La couche d'automatisation mimoLive a été développée à l'origine comme une preuve de concept, mais elle s'est depuis révélée être un outil incroyablement utile pour les utilisateurs. Cette couche peut être utilisée pour automatiser l'activation et la désactivation des couches dans une séquence spécifique ou à des moments prédéterminés, récupérer des données à partir de sources distantes via HTTP et envoyer les informations traitées dans les champs de saisie des couches, démarrer et arrêter Output Destinations, et bien d'autres choses encore !

Les scripts d'automatisation dans mimoLive ne s'exécutent pas en temps réel

Veuillez noter que la synchronisation des scripts d'automatisation dans mimoLive peut ne pas être exacte en raison de la nature asynchrone des requêtes HTTP appelées par le moteur de rendu vidéo. Certaines commandes de script envoient des requêtes HTTP à l'API mimoLive et la durée de ces requêtes ne peut pas être déterminée avec précision, ce qui peut entraîner des écarts de synchronisation. Gardez cela à l'esprit lorsque vous utilisez des scripts d'automatisation dans votre flux de production.

Prérequis

Pour que cette couche fonctionne, vous devez activer le serveur HTTP dans mimoLive afin d'activer l'API de commande à distance. Allez dans mimoLive > Préférences > Contrôles à distance : Cochez l'option "Autoriser l'accès à la commande à distance". (Actuellement, la couche d'automatisation dans mimoLive ne fonctionne que sans mot de passe).

6102d04e 4eb3 4600 b410 0d2b2aef0767

Mise en place de la couche d'automatisation

Il y a deux options sur la façon dont la couche doit se comporter après avoir été commutée en direct :

OptionComportement
Désactivation automatique de la coucheCette option est unique car une fois que le script a fini de s'exécuter, le calque s'éteint automatiquement. Utilisez cette option lorsqu'un script ne doit être exécuté qu'une seule fois.
Éteindre le calque manuellement (par l'opérateur, par exemple)Dans ce mode, trois scripts sont disponibles :

- En direct - S'exécute une fois lorsque la couche est activée.
- En direct - S'exécute continuellement en boucle après la fin du script On Live.
- Éteint - S'exécute une fois lorsque la couche est éteinte.

Lorsque le calque est éteint, le script While Live est terminé avant que le script Turned Off ne soit exécuté.
Si la couche est rallumée, vous pouvez revenir à l'état précédent.

Code source Commentaires

Pour vous souvenir de l'objectif et de la fonctionnalité de votre script, nous vous recommandons d'ajouter des commentaires à l'intérieur du code. Commencez chaque ligne de commentaire par //.

// First sleep for 5 seconds...
sleep(5)

// ...then start the Stop Watch layer:
layerOn("7C4665C4-0E17-4F63-BCFF-B59D68D75956")

Commandes de script

Le langage de script est propriétaire et comprend plusieurs commandes. Ces commandes sont répertoriées dans une liste d'astuces dans l'aperçu du calque à droite. Si cette liste est difficile à lire, vous pouvez développer l'aperçu en cliquant sur le bouton situé au-dessus et à droite de la zone d'aperçu.

layerOn()

Active une couche ou une variante de couche en fonction de son ID ou de l'URL du point de terminaison de l'API, ou en fonction d'une variable.

// switching on a layer by its id
layerOn("4E38A868-DCB5-4E9C-AC75-231764229BFA")

// switching on a layer variant by its id
layerOn("4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1")

// switching on a layer by its long API Endpoint URL
layerOn("/api/v1/documents/863743527/layers/4E38A868-DCB5-4E9C-AC75-231764229BFA")

// switching on a layer with a defined variable
setVariable($myLayerID, "4E38A868-DCB5-4E9C-AC75-231764229BFA")
layerOn($myLayerID)

layerOff(<API ID de la couche en tant que chaîne Expression>)

Désactive une couche ou une variante de couche en fonction de son ID ou de l'URL du point de terminaison de l'API, ou en fonction d'une variable.

// switching off a layer by its id
layerOff("4E38A868-DCB5-4E9C-AC75-231764229BFA")

// switching off a layer variant by its id
layerOff("4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1")

// switching off a layer by its long API Endpoint URL
layerOff("/api/v1/documents/863743527/layers/4E38A868-DCB5-4E9C-AC75-231764229BFA")

// switching off a layer with a defined variable
setVariable($myLayerID, "4E38A868-DCB5-4E9C-AC75-231764229BFA")
layerOff($myLayerID)

layerSetRecall(<Couche API Set ID as String Expression>)

Déclenche le rappel d'un certain Layer Set.

// recall a Layer Set by its id
layerSetRecall("E6950B7A-7457-44C5-81F7-972D9B04DBC3")

// recall a Layer Set by its long API Endpoint URL
layerSetRecall("/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3")

// recall a Layer Set with a defined variable
setVariable($myLayerSetID, "E6950B7A-7457-44C5-81F7-972D9B04DBC3")
layerSetRecall($myLayerSetID)

outputOn(<ID de destination de sortie de l'API sous forme d'expression de chaîne>)

Active une destination de sortie.

// démarre une destination de sortie par son id
outputOn("1953186E-4176-4849-A8ED-5B47EE1627BD")

// démarre une destination de sortie par son URL de point final d'API long
outputOn("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")

// démarre une destination de sortie avec une variable définie
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOn($myOutputDestinationtID)

outputOff(<ID de destination de sortie de l'API sous forme d'expression de chaîne>)

Désactive une destination de sortie.

/// arrêter une destination de sortie par son id
outputOff("1953186E-4176-4849-A8ED-5B47EE1627BD")

// arrêtez une destination de sortie par son URL de point final d'API long
outputOff("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")

/// arrêter une destination de sortie avec une variable définie
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOff($myOutputDestinationtID)

getLayerData($resultVariableName, , )

Récupère les données de la couche par chemin d'accès. <Cette commande combine plusieurs commandes en une seule action de script : Elle récupère les informations sur les couches à partir du serveur HTTP et stocke un champ de données spécifique de la réponse JSON dans une variable. Vous avez besoin du chemin d'accès exact à la valeur que vous souhaitez lire. Pour le paramètre d'entrée des couches, ce chemin commence généralement par 'data.attributes.input-values'.

// set up useful variables
setVariable($myScoreboardLayerID, "36FA76B4-11FE-4879-8DE1-307222512712")
setVariable($pathToHomeScore, "data.attributes.input-values.tvGroup_Control__Score_Home")

// read the score for the home team from the Basketball layer
getLayerData($currentHomeScore, $myScoreboardLayerID, $pathToHomeScore)

// The variable $currentHomeScore now contains the Home Score input value of the Basketball Score layer

getObjectIDByName($resultVariableName, , )

Récupère le point de terminaison de l'API pour un objet mimoLive spécifié par son nom d'affichage.

N'oubliez pas que le nom d'affichage peut être modifié à tout moment par l'opérateur dans l'interface utilisateur de mimoLive. Si le nom change, le script d'automatisation peut échouer car il ne peut plus trouver l'objet spécifié. D'autre part, cette commande est utile pour découvrir de manière programmatique les points de terminaison de l'API sans avoir à coder en dur leurs identifiants dans le script.

Fonctionne pour "source", "layer", "layer-variant", "layer-set", "output-destination".

// Get the API Endpoint for the Basketball Score layer
getObjectIDByName($myBasketballScoreLayerID, "layer", "My Basketball Score Keeper")

// switch this layer on
layerOn($myBasketballScoreLayerID)
Capture d'écran 2024 06 11 à 15.20.42

dormir(<Secondes> en tant que nombre)

Interrompt l'exécution du script pendant un certain nombre de secondes.

// pause the script execution for 12 seconds
sleep(12)

// pause the script execution for 35.6 seconds
sleep(35.6)

// pause the script execution for a time interval specified by a variable
setVariable($mySleepInterval, 17)
sleep($mySleepInterval)

sleepUntil(<Temps en tant qu'expression de chaîne>)

Met en pause jusqu'à une heure donnée (HH:MM ou HH:MM:SS).

// sleep until 5:15pm
sleepUntil("17:15:00")

// sleep until 9:12am
sleepUntil("9:12")

// sleep until a time specified by a variable
setVariable($myWakeUpTime, "9:41")
sleepUntil($myWakeUpTime)

sleepOnTheMinute()

Met le script en pause jusqu'à ce que la prochaine fraction d'heure "à la minute près" soit atteinte.

// go on every 20 minutes: on the hour, 20 and 40 minutes past the hour:
sleepOnTheMinute(20)

// go on "on the hour"
sleepOnTheMinute(60)

// go on every 10 minutes past the hour (specified by a variable)
setVariable($myWakeUpMinute, 10)
sleepOnTheMinute($myWakeUpMinute)

setVariable($variableName, <valeur>)

Crée ou modifie une variable locale (commence par $). La valeur peut être une chaîne de caractères, un nombre ou un booléen.

setVariable($myText, "This is a text")
setVariable($myNumber, 15.73)
setVariable($myBoolValue, false)

setGlobal($variableName, <valeur>)

Crée ou modifie une variable globale partagée entre les couches d'automatisation.

Veuillez noter que les variables globales sont accessibles aux autres couches d'automatisation tant que la couche d'origine est active. Cette disposition vous permet de changer de variables globales en activant une couche différente avec des définitions de variables globales distinctes. La meilleure pratique dans ce scénario est de définir l'option "Switch Layer Off" de la couche d'automatisation sur "Manually" et de définir les variables globales dans le script "On Live".

setGlobal($myGlobalText, "This is a text")
setGlobal($myGlobalNumber, 15.73)
setGlobal($myGlobalBoolValue, false)

concat($resultVariableName, )

Concatène les expressions de chaînes de caractères.

// define some variables
setVariable($myVariableA, "This is")
setVariable($myVariableB, "text.")

// concatenate those variables and store the result into a new one
concat($myResultVariable, $myVariableA + " a " + $myVariableB)

// The variable $myResultVariable contains "This is a text.".

replace(, , , )

Cette commande crée une nouvelle chaîne en remplaçant toutes les occurrences d'une chaîne de recherche dans une chaîne source. Le résultat est stocké dans la variable de résultat spécifiée.

// define a source string
setVariable($source, "Hello mimoLive, hello automation!")

// replace “hello” (lowercase) with “Hi”
replace($result, $source, "hello", "Hi")

// $result = "Hello mimoLive, Hi automation!"

math($resultVariableName, )

Cette commande permet d'effectuer des calculs mathématiques simples, y compris l'addition (+), la soustraction (-), la multiplication (*) et la division (/). Veuillez noter que les calculs sont effectués dans l'ordre dans lequel ils apparaissent et ne suivent PAS la règle PEMDAS/BODMAS.

// define some variables
setVariable($myVariableA, 3)
setVariable($myVariableB, 5)

// perform the calculation
math($myResult, $myVariableA + 2 * $myVariableB)

// The result in $myResult is 25 (!) and not 13

list($resultVariableName, [, , ...])

La commande list crée une liste et la place dans la variable result. Vous pouvez utiliser la variable list dans la commande getListItem pour parcourir cette liste.

// create a list and put it into a variable
list($myList, "A", "B", "C", "D")

appendToList($listVariableName, )

Cette commande ajoutera une certaine valeur à une liste existante.

// create a list and put it into a variable
list($myList, "A", "B", "C", "D")

// append an item to the list
appendToList($myList, "E")

// The result is a list with 5 items "A", "B", "C", "D" and "E"

getListItem($resultVariableName, $listVariableName, )

Cette commande vous permet d'extraire un élément particulier d'une liste spécifiée par la commande list. Veuillez noter que le numéro de l'élément commence à 1, contrairement à de nombreux autres langages de programmation où les tableaux commencent souvent par l'index 0.

// create a list and put it into a variable
list($myList, "A", "B", "C", "D")

// get a specific list item
getListItem($myCharacter, $myList, 2)

// The result "B" is stored in variable $myCharacter


// The following is a more complex example on how to iterate through the list with a loop command

// define a list of layer IDs that should be turned on
list($myLayerIDs, "4ECB8ACC-DEF5", "9852-60E2C81", "DFD87A4D-9FC9", "4324-9B7C", "7B1C13-2CD28")

setvariable($iteration,1)
loop(5)

  getListItem($myLayerID,$myLayerIDs,$iteration)
  setLayerOn($myLayerID)
  math($iteration,$iteration+1)

endloop()

getListCount($resultingListCountVariableName, $listVariableName)

Cette commande vous permet d'obtenir le nombre d'éléments d'une variable de liste que vous avez créée avec list().

// create a list and put it into a variable
list($myList, "A", "B", "C", "D")

// get a specific list item
getListCount($myListCount, $myList)

// The result 4 is stored in variable $myListCount

if(, , ) [else] endif

Cette instruction if compare deux expressions numériques à l'aide d'un comparateur spécifié. Si la comparaison est vraie, la ou les commandes suivantes sont exécutées. Dans le cas contraire, les commandes suivantes sont ignorées jusqu'à ce qu'un else ou un endif soit atteint.

Les comparateurs valides sont les suivants :

“==”équivaut
“!=”n'est pas égal
">"supérieur à
"<"moins de
">="supérieur ou égal à
"<="inférieur ou égal à
// define a variable
setVariable($myVariable, 3)

// test if the variable is bigger than 10
if($myVariable, ">", 10)
   setVariable($text, "is bigger than 10")
else
   setVariable($text, "is less or equal 10")
endif

// The result in $text is "is less or equal 10"

ifString(, , ) [else] endif

Cette instruction ifString compare deux expressions de chaîne à l'aide d'un comparateur spécifié. La comparaison est basée sur le code ASCII de chaque lettre des chaînes. Si la comparaison est vraie, les commandes suivantes sont exécutées. Dans le cas contraire, les commandes suivantes sont ignorées jusqu'à ce qu'un else ou endif soit atteint.

Pour les comparateurs valides, voir la commande if.

// define a variable
setVariable($myVariable, "mimoLive")

// test if the variable is "mimoLive"
if($myVariable, "==", "mimoLive")
   setVariable($text, "yes")
else
   setVariable($text, "no")
endif

// The result in $text is "yes"

ifLayerIsOn(<API ID de la couche en tant que chaîne Expression>) - ifLayerIsOff(<API ID de la couche en tant que chaîne Expression>) [else] endif

Ces instructions if testent si une certaine couche est actuellement active ou non. Si la condition spécifiée est remplie (la couche est activée ou désactivée), les commandes suivantes sont traitées. Dans le cas contraire, les commandes suivantes sont ignorées jusqu'à ce qu'un else ou endif soit atteint.

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")

ifLayerIsOn($myLayerA)
   // the layer is live, switch it off
   layerOff($myLayerA)
else
   // the layer is currently off, switch it on
   layerOn($myLayerA)
endif

ifLayerIsOff($myLayerB)
   // the layer is currently off, switch it on
   layerOn($myLayerB)
endif

ifLayerSetIsActive(<API ID de la couche en tant que chaîne Expression>) - ifLayerSetIsInactive(<API ID de la couche en tant que chaîne Expression>) [else] endif

Ces instructions if testent si un certain Layer Set est actuellement en ligne ou non. Si c'est le cas, les commandes suivantes sont traitées. Sinon, les commandes suivantes sont ignorées jusqu'à ce qu'un else ou endif soit atteint.

setVariable($myLayerSetA, "CEF07AFA-B552-40F8-821C-CF424EB93500")
setVariable($myLayerSetB, "E4B15B8B-EE34-4CCE-BDE7-58120A65E83A")
setVariable($myLayer, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")


ifLayerSetIsActive($myLayerSetA)
   // the layer set A is active, switch layer on
   layerOn($myLayer)
else
   // the layer set A is currently inactive, switch the layer off
   layerOff($myLayer)
endif

ifLayerSetIsInactive($myLayerSetB)
   // the layer set B is currently inactive, switch the layer off
   layerOn($myLayer)
endif

ifLayerData(, , , ) [else] endif

Cette commande complexe vous permet de tester n'importe quel paramètre d'une couche que l'application HTTP API fournit. Vous devez spécifier une couche par son ID API, le chemin clé dans les données JSON renvoyées par l'API HTTP, un comparateur (sous la forme d'une chaîne entre guillemets, par exemple, "==") et une valeur.

Les valeurs valables du comparateur sont les suivantes :

“==”équivaut
“!=”n'est pas égal
">"supérieur à
"<"moins de
">="supérieur ou égal à
"<="inférieur ou égal à
// Example: Testing if the audio volume is turned up on a layer

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")

ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
   // The audio volume is bigger than 0.5 so turn layer B on
   layerOn($myLayerB)
else
   // The volume is lower than 0.5, lets turn layer B off
   layerOff($myLayerB)
endif

loop([]) [break] endloop

La commande loop vous permet d'exécuter un code plusieurs fois. Si vous ne précisez pas le nombre d'itérations, la boucle s'exécutera indéfiniment. La commande break vous permet de quitter la boucle à tout moment. La commande endloop est nécessaire pour marquer la fin du bloc de commande qui doit être bouclé.

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")

// blink layer A 4 times
loop(4)
   layerOn(setVariable(myLayerA)
   sleep(1)
   layerOff(setVariable(myLayerA)
   sleep(1)
endloop

// wait for volume of layer A will be bigger than 0.5
loop()
   ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
      // The audio volume is bigger than 0.5 exit the loop now
      break
   endif
   sleep(1)
endloop

httpRequest()

Le site httpRequest() déclenche l'URL donnée. Cela offre une grande flexibilité dans l'utilisation de cette commande de script. Dans le cas d'un mimoLiveIl peut même déclencher des actions dans d'autres documents ou des scripts distants. Pour plus d'informations sur les mimoLivePour les commandes de l'API HTTP, veuillez consulter la page HTTP API pour explorer tous les appels d'API possibles.

/// mettre en place une couche
httpRequest("http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive")

httpRequestJSON($resultVariableName, )

Cette commande lit la réponse de l'appel HTTP au format JSON et stocke les données dans la variable de résultat spécifiée. Vous pouvez ensuite accéder aux données via la commande getJSONData().

getJSONData($resultVariableName, $jsonDataVariable, )

Cette commande permet de récupérer une valeur de données spécifique à partir d'une structure JSON stockée dans une variable. Vous devez spécifier la variable contenant les données JSON ($jsonDataVariable), le chemin d'accès aux données dans la structure JSON () et la variable dans laquelle le résultat doit être stocké ($resultVariableName). Cela permet une extraction précise des données pour un traitement ultérieur ou une utilisation dans votre script. Le chemin d'accès peut contenir des références à des éléments d'un tableau, par exemple "myarray.[12].myvalue" produira l'élément de valeur myvalue d'un tableau appelé myarray à l'élément 12 (le nombre d'éléments commence à 1). (le nombre d'éléments commence à 1).

/// obtenir toutes les données d'une couche
httpRequestJSON($myLayerData, "http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B")

/// obtenir la valeur du cadran de volume
getJSONData($volumenDial, $myLayerData, "data.attributes.volume")

// Maintenant, la variable $volumenDial contiendra une valeur comprise entre 0 et 1.

setJSONData(, , )

Écrit une valeur dans une variable JSON au chemin d'accès fourni. Utilisez ceci pour modifier JSON que vous avez construit ou récupéré avec httpRequestJSON. Les chemins de clés sont séparés par des points.

// set fields
setJSONData($json, "data.attributes.input-values.title", "My Headline")
setJSONData($json, "data.attributes.volume", 0.75)

JSONToString(, )

Sérialise une variable objet JSON en une chaîne compacte (utile pour l'enregistrement, l'envoi ou le stockage).

// assume $json already contains data
JSONToString($jsonString, $json)
// $jsonString now holds the serialized JSON text

urlEncode(, )

Le codage URL d'une chaîne de caractères permet de l'utiliser en toute sécurité dans les paramètres de requête ou les chemins d'accès des requêtes http.

// build a query value and encode it
setVariable($q, "mimoLive tips & tricks")
urlEncode($qEncoded, $q)

// $qEncoded -> "mimoLive%20tips%20%26%20tricks"

urlDecode(, )

L'URL décode une chaîne codée en pourcentage en texte lisible.

// decode an encoded query value
setVariable($raw, "mimoLive%20tips%20%26%20tricks")
urlDecode($decoded, $raw)

// $decoded -> "mimoLive tips & tricks"

arrêter

Arrête immédiatement le script en cours d'exécution. Utile pour une sortie anticipée après qu'une condition a été remplie.

// wait for a condition, then stop the script
ifLayerData("D6A326CA-72E6-45E5-836D-9795F8F534F4", "data.attributes.volume", ">", 0.5)
  // do one action then stop
  layerOn("8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")
  stop
else
  // keep waiting
  sleep(1)
endif

> (Point d'arrêt pour le débogueur)

Lorsque le débogueur de script est activé et que le mode de débogage est défini sur "En continu", l'exécution du script s'arrête à ce marqueur et attend que l'opérateur mimoLive clique sur le bouton "Étape suivante". Pour plus d'informations sur les possibilités de débogage, reportez-vous à la section "Meilleures pratiques - Débogage des scripts".

// do something
layerOn("D6A326CA-72E6-45E5-836D-9795F8F534F4")

// breakpoint: script pauses here in debugger
>

// continue after stepping
sleep(1)
layerOff("D6A326CA-72E6-45E5-836D-9795F8F534F4")

Constante : $DOCUMENT_ID

Contient le ID du document API pour le document mimoLive actuel. Pratique pour construire des points de terminaison sans codage en dur.

// build a layer endpoint using the document ID
setVariable($layerId, "BA868701-8131-49CB-8EDD-8C7E6E7CD60B")
concat($endpoint, "/api/v1/documents/" + $DOCUMENT_ID + "/layers/" + $layerId + "/setLive")

// switch the layer on using the constructed URL
httpRequest($endpoint)

Types de données

API Points finaux

Le paramètre doit être un point de terminaison API pour une couche, une variante de couche, un ensemble de couches, une source ou une destination de sortie. Vous pouvez obtenir ces points de terminaison API en cliquant avec le bouton droit de la souris sur l'objet dans le document mimoLive. Un menu contextuel devrait apparaître avec un élément de menu " Copier le point de terminaison API dans le presse-papiers ".

Cette action copiera le point de terminaison de l'API pour cet objet dans le presse-papiers. Si vous le collez ailleurs, il ressemblera à ceci :

/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4

/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922

/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3

Pour les commandes liées à la couche, vous pouvez réduire la API Les points d'accès à la partie importante uniquement en supprimant le préfixe "/api/v1/documents//layers/" . Votre script sera ainsi plus court, comme le montre l'illustration ci-dessous :

// switching on a layer:
layerOn("/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4")
// OR
layerOn("D6A326CA-72E6-45E5-836D-9795F8F534F4")

// switching on a variant:
layerOn("/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922")
// OR
layerOn("68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922")

 

Meilleures pratiques

Points d'extrémité de l'API

Comment obtenir les points de terminaison de l'API

  • En cliquant avec le bouton droit de la souris sur le calque et en sélectionnant "Copy API Endpoint" (copier le point de terminaison de l'API)
  • en utilisant la commande getAPIEndpoint() (voir documentation)

Adressage des points d'extrémité de l'API

Vous pouvez utiliser le point de terminaison API complet ou supprimer la partie "/api/v1/documents//" pour vous assurer que votre script fonctionne également lorsqu'il est copié dans un autre document. Toutefois, l'identifiant du document est important si vous souhaitez utiliser un point API dans un autre document mimoLive.

Débogage des scripts

Un débogueur de scripts est intégré au calque d'automatisation. Vous pouvez passer le calque en mode débogage en activant le paramètre de calque "Debug".

TBD.

Idées de script

Diffuser une annonce toutes les 10 minutes

En combinaison avec un "PIP Window" et une "Media Playlist source" contenant plusieurs courts clips publicitaires, vous pouvez lire une publicité toutes les 10 minutes. Veillez à décocher l'option "Non-Stop" dans la source Media Playlist. Ainsi, chaque fois que la PIP Si la fenêtre est réglée sur "live", elle lira une publicité à partir de la source de la liste de lecture et s'éteindra d'elle-même. Au bout de 10 minutes, la publicité suivante est diffusée.

Lancez un stinger avant de passer à une certaine couche.

Vous devez préparer une courte vidéo d'introduction qui aura une transition vers l'intérieur jusqu'à ce qu'elle couvre tout l'écran (par exemple, après 1 seconde). Au bout d'une seconde, vous passez en direct le calque que vous souhaitez révéler. Placez ce calque sous le calque qui lit la vidéo stinger. Maintenant que la vidéo stinger couvre l'écran, la commutation du calque situé en dessous n'est plus visible. La vidéo stinger doit continuer à révéler le calque du dessous. Veillez à ce que la vidéo stinger soit rendue avec le codec vidéo ProRes4444 afin qu'elle comporte la transparence nécessaire à la transition.

Créer une ouverture de spectacle complexe

Comme vous pouvez activer et désactiver les calques les uns après les autres sur une longue période, vous pouvez avoir plusieurs calques de texte ou d'annotation, un calque d'insertion affichant des graphiques ou même des tiers inférieurs qui remplissent l'écran pour créer votre propre ouverture de spectacle animée. Soyez créatif !

Déclencher une télécommande HTTP URL en tapant sur la surface de la télécommande

Si vous devez déclencher un HTTP Demande par un bouton sur votre Surface de contrôle à distance vous pouvez ajouter un calque d'automatisation à votre pile de calques et régler l'option "Désactiver le calque" de ce calque sur "Automatiquement". Vous pouvez maintenant insérer une seule commande httpRequest() dans le champ de script "On Live". Sur votre surface de contrôle à distance, ajoutez le bouton Live de ce calque à la mise en page. Une fois que vous aurez appuyé sur ce bouton sur votre surface de contrôle à distance, la commande HTTP sera effectuée.

Votre avis

Comment évaluez-vous votre expérience avec cette fonction de mimoLive ?

Manuel de l'utilisateur : Mises à jour récentes

Points finaux

Généralités L'API, lorsqu'elle est activée, est disponible à l'adresse "http://localhost:8989/api/v1". Il s'agit de l'URL de base que

Lire plus "

Couche d'automatisation

Rationalisez votre production avec la couche d'automatisation de mimoLive La couche d'automatisation de mimoLive a été développée à l'origine en tant que couche d'automatisation.

Lire plus "