Automatiseringslaag

Inhoudsopgave

Stroomlijn uw productie met de automatiseringslaag van mimoLive

U bekijkt momenteel inhoud van een plaatshouder van YouTube. Klik hieronder op de knop om de volledige inhoud te bekijken. Houd er rekening mee dat u op deze manier gegevens deelt met providers van derden.

Meer informatie

De mimoLive Automation Layer werd oorspronkelijk ontwikkeld als een proof of concept, maar heeft sindsdien bewezen een ongelooflijk nuttig hulpmiddel te zijn voor gebruikers. Deze laag kan worden gebruikt om het in- en uitschakelen van lagen in een specifieke volgorde of op vooraf bepaalde tijden te automatiseren, gegevens van externe bronnen via HTTP op te halen en verwerkte informatie naar invoervelden van lagen te pushen, Uitvoerbestemmingen te starten en te stoppen, en nog veel meer!

Automatiseringsscripts in mimoLive worden niet in realtime uitgevoerd

Houd er rekening mee dat de timing van automatiseringsscripts in mimoLive mogelijk niet nauwkeurig is vanwege de asynchrone aard van HTTP-verzoeken die door de video rendering engine worden aangeroepen. Sommige scriptopdrachten sturen HTTP-verzoeken naar de mimoLive API en de lengte van deze verzoeken kan niet nauwkeurig worden bepaald, wat kan resulteren in mogelijke afwijkingen in de timing. Houd hier rekening mee bij het gebruik van automatiseringsscripts in uw productieworkflow.

Voorwaarde

Om deze laag te laten werken, moet u de HTTP-server in mimoLive inschakelen om de Remote Control API in te schakelen. Ga naar mimoLive > Voorkeuren > Remote Controls: Vink de optie "Toegang tot afstandsbediening toestaan" aan. (Momenteel werkt Automation layer in mimoLive alleen zonder wachtwoord)

6102d04e 4eb3 4600 b410 0d2b2aef0767

De automatiseringslaag instellen

Er zijn twee opties over hoe de laag zich moet gedragen na het live schakelen:

OptieGedrag
Laag automatisch uitschakelenDeze optie is enkelvoudig omdat de laag automatisch wordt uitgeschakeld zodra het script klaar is met draaien. Gebruik deze optie wanneer een script slechts één keer moet worden uitgevoerd.
Laag handmatig uitschakelen (bijv. door de operator)In deze modus zijn drie scripts beschikbaar:

- Live - Wordt eenmaal uitgevoerd wanneer de laag live wordt geschakeld.
- Terwijl Live - Draait continu als een oneindige lus nadat het On Live-script is beëindigd.
- Uitgeschakeld - Wordt eenmaal uitgevoerd wanneer de laag wordt uitgeschakeld.

Wanneer de laag wordt uitgeschakeld, wordt het script While Live beëindigd voordat het script Turned Off wordt uitgevoerd.
Als de laag weer wordt ingeschakeld, kunt u de vorige status opnieuw oproepen.

Broncode Opmerkingen

Om het doel en de functionaliteit van uw script te onthouden, raden wij u aan commentaar toe te voegen aan de code. Begin elke commentaarregel met //.

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

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

Scriptingopdrachten

De scripttaal is eigen en bevat verschillende commando's. Deze commando's staan in een spiekbriefje in de laagvoorvertoning rechts. Als deze lijst moeilijk te lezen is, kunt u het afdrukvoorbeeld uitvouwen door op de knop rechtsboven het afdrukvoorbeeldgebied te klikken.

layerOn()

Schakelt een laag of een laagvariant in aan de hand van zijn ID of API Endpoint URL, of aan de hand van een variabele.

// 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 Laag-ID als string Expressie>)

Schakelt een laag of een laagvariant uit op zijn ID of API Endpoint URL, of op variabele.

// 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(<API-laag ID als tekenreeks instellen Uitdrukking>)

Activeert het terugroepen voor een bepaalde Lagen-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(<API uitvoer Bestemming ID als string expressie>)

Schakelt een uitvoerbestemming in.

//begin een uitvoerbestemming met zijn id
outputOn("1953186E-4176-4849-A8ED-5B47EE1627BD")

//begin een uitvoerbestemming met zijn lange API-eindpunt-URL
outputOn("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")

//begin een uitvoerbestemming met een gedefinieerde variabele
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOn($myOutputDestinationtID)

outputOff(<API uitvoer Bestemming ID als string expressie>)

Schakelt een uitvoerbestemming uit.

//stop een uitvoerbestemming met zijn id
outputOff("1953186E-4176-4849-A8ED-5B47EE1627BD")

//stop een uitvoerbestemming door zijn lange API Endpoint URL
outputOff("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")

//stop een uitvoerbestemming met een gedefinieerde variabele
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOff($myOutputDestinationtID)

getLayerData($resultVariableName, , )

Haalt laaggegevens op per sleutelpad.

Dit commando combineert meerdere commando's in één scriptstap: Het haalt de laaginformatie op van de HTTP server en slaat een specifiek dataveld uit het JSON antwoord op in een variabele. U hebt het exacte pad nodig naar de waarde die u wilt lezen. Voor de invoerparameter van lagen begint dit pad meestal met '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, , )

Haalt het API Eindpunt op voor een gespecificeerd mimoLive object aan de hand van de weergavenaam.

Bedenk dat de weergavenaam op elk moment kan worden gewijzigd door de operator in de mimoLive gebruikersinterface. Als de naam verandert, kan het automatiseringsscript mislukken omdat het het gespecificeerde object niet meer kan vinden. Aan de andere kant is dit commando handig voor het programmatisch ontdekken van API endpoints zonder dat u hun ID's in het script hoeft te coderen.

Werkt voor "bron", "laag", "laag-variant", "laag-set", "uitvoer-bestemming".

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

// switch this layer on
layerOn($myBasketballScoreLayerID)
Screenshot 2024 06 11 om 15.20.42

slaap(<seconden> als getal)

Pauzeert de uitvoering van het script gedurende een aantal seconden.

// 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(<Tijd als tekenreeksuitdrukking>)

Pauzeert tot een bepaalde kloktijd (HH:MM of 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()

Pauzeert het script totdat de volgende 'op de minuut' fractie van een uur is bereikt.

// 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)

setVariabele($variableName, <waarde>)

Creëert of wijzigt een lokale variabele (begint met $). De waarde kan een tekenreeks, getal of booleaans zijn.

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

setGlobal($variableName, <waarde>)

Maakt of wijzigt een globale variabele die gedeeld wordt door automatiseringslagen.

Merk op dat globale variabelen toegankelijk zijn voor andere Automation-lagen zolang de oorspronkelijke laag live is. Hierdoor kunt u globale variabelen omschakelen door een andere laag met verschillende definities van globale variabelen te activeren. De beste werkwijze in dit scenario is om de optie "Laag uitschakelen" van de automatiseringslaag in te stellen op "Handmatig" en de globale variabelen in het script "Aan live" te definiëren.

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

concat($resultVariableName, )

Voegt tekenreeksexpressies samen.

// 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(, , , )

Deze opdracht maakt een nieuwe tekenreeks door alle voorkomens van een zoekstring binnen een bronstring te vervangen. Het resultaat wordt opgeslagen in de opgegeven resultaatvariabele.

// 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, )

Dit commando voert eenvoudige wiskundige berekeningen uit, waaronder optellen (+), aftrekken (-), vermenigvuldigen (*) en delen (/). Let op: berekeningen worden uitgevoerd in de volgorde waarin ze verschijnen en volgen NIET de PEMDAS/BODMAS-regel.

// 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, [, , ...])

De opdracht list maakt een lijst en zet deze in de resultaatvariabele. U kunt de lijstvariabele gebruiken in de opdracht getListItem om door deze lijst te itereren.

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

appendToList($listVariableName, )

Deze opdracht voegt een bepaalde waarde toe aan een bestaande lijst.

// 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, )

Met dit commando kunt u een bepaald item ophalen uit een lijst die is opgegeven met het commando list. Merk op dat het itemnummer bij 1 begint, in tegenstelling tot veel andere programmeertalen waar arrays vaak met de index 0 beginnen.

// 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)

Met deze opdracht kunt u het aantal items krijgen in een lijstvariabele die u hebt gemaakt met 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

Deze if-instructie vergelijkt twee numerieke uitdrukkingen met behulp van een gespecificeerde comparator. Als de vergelijking waar is, worden de volgende opdracht(en) uitgevoerd. Anders worden de volgende opdrachten overgeslagen totdat een else of endif wordt bereikt.

Geldige vergelijkers zijn:

“==”is gelijk aan
“!=”niet gelijk aan
">"groter dan
"<"minder dan
">="groter of gelijk aan
"<="minder of beter dan
// 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

Deze ifString-instructie vergelijkt twee tekenreeksexpressies met behulp van een gespecificeerde comparator. De vergelijking is gebaseerd op de ASCII-tekencode van elke letter in de tekenreeksen. Als de vergelijking waar is, dan worden de volgende opdrachten uitgevoerd. Anders worden de volgende opdrachten overgeslagen totdat een else of endif wordt bereikt.

Voor geldige vergelijkers, zie het if-commando.

// 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 Laag-ID als string Expressie>) - ifLayerIsOff(<API Laag-ID als string Expressie>) [else] endif

Deze indien verklaringen testen of een bepaalde laag momenteel live is of niet. Als aan de opgegeven voorwaarde is voldaan (de laag is aan of uit), dan worden de volgende opdrachten verwerkt. Anders worden de volgende opdrachten overgeslagen totdat een else of endif wordt bereikt.

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 Laag-ID als string Expressie>) - ifLayerSetIsInactive(<API Laag-ID als string Expressie>) [else] endif

Deze if-statements testen of een bepaalde Layer Set momenteel live is of niet. Zo ja, dan worden de volgende opdrachten verwerkt. Anders worden de volgende opdrachten overgeslagen totdat een else of endif wordt bereikt.

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

Met dit complexe commando kunt u elke parameter van een laag testen die de HTTP API biedt. U moet een laag specificeren met zijn API ID, het sleutelpad binnen de JSON-gegevens die door de HTTP API worden geretourneerd, een vergelijker (als een tekenreeks tussen aanhalingstekens, bijv.=="), en een waarde.

Geldige vergelijkingswaarden zijn:

“==”is gelijk aan
“!=”niet gelijk aan
">"groter dan
"<"minder dan
">="groter of gelijk aan
"<="minder of beter dan
// 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

Met het loop commando kunt u code meerdere keren uitvoeren. Als u het aantal iteraties niet opgeeft, wordt de lus oneindig uitgevoerd. Met het break commando kunt u de lus op elk moment verlaten. endloop is nodig om het einde van het opdrachtblok te markeren dat in een lus moet worden uitgevoerd.

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()

De httpRequest() commando de gegeven URL activeert. Dit biedt veel flexibiliteit in hoe u dit scriptcommando kunt gebruiken. In mimoLiveHet kan zelfs acties in andere documenten of externe scripts activeren. Voor meer informatie over mimoLiveHTTP API-opdrachten, raadpleeg de HTTP API documentatie om alle mogelijke API-aanroepen te onderzoeken.

// een laag inschakelen
httpRequest("http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive")

httpRequestJSON($resultVariableName, )

Deze opdracht leest het antwoord van de HTTP-oproep als JSON en slaat de gegevens op in de opgegeven resultaatvariabele. Hierna hebt u toegang tot de gegevens via de getJSONData() opdracht.

getJSONData($resultVariableName, $jsonDataVariable, )

Deze opdracht haalt een specifieke gegevenswaarde op uit een JSON-structuur die is opgeslagen in een variabele. U moet de variabele specificeren die de JSON-gegevens bevat ($jsonDataVariable), het pad naar de gegevens binnen de JSON-structuur (), en de variabele waar het resultaat moet worden opgeslagen ($resultVariableName). Hierdoor kunnen gegevens nauwkeurig worden geëxtraheerd voor verdere verwerking of gebruik in uw script. Het sleutelpad kan verwijzingen naar elementen in een array bevatten, bijv. "myarray.[12].myvalue" zal het waarde-element myvalue van een array genaamd myarray bij element 12 uitvoeren. (elementtelling begint bij 1).

//verkrijg alle gegevens van een laag
httpRequestJSON($myLayerData, "http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B")

//verkrijg de waarde van de volumeknop
getJSONData($volumenDial, $myLayerData, "data.attributes.volume")

// Nu zal de variabele $volumenDial een waarde tussen 0 en 1 bevatten.

setJSONData(, , )

Schrijft een waarde naar een JSON-variabele op het opgegeven sleutelpad. Gebruik dit om JSON te wijzigen die u hebt gebouwd of opgehaald met httpRequestJSON. Sleutelpaden zijn punt-gescheiden.

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

JSONToString(, )

Serialiseert een JSON objectvariabele in een compacte tekenreeks (handig voor loggen, verzenden of opslaan).

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

urlEncode(, )

URL codeert een tekenreeks zodat deze veilig kan worden gebruikt in queryparameters of paden in http-aanvragen.

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

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

urlDecode(, )

URL-decodeert een procent-gecodeerde tekenreeks terug naar leesbare tekst.

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

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

stop

Stopt het momenteel lopende script onmiddellijk. Nuttig voor vroegtijdig afsluiten nadat aan een voorwaarde is voldaan.

// 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

> (Breakpoint voor debugger)

Als de scriptdebugger ingeschakeld is en de debugmodus ingesteld is op 'Continu', zal de uitvoering van het script bij deze markering pauzeren en wachten totdat de mimoLive-operator op de knop 'Volgende stap' klikt. Zie 'Beste Praktijken - Scripts debuggen' voor meer informatie over de debugmogelijkheden.

// 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")

Constant: $DOCUMENT_ID

Bevat de API document ID voor het huidige mimoLive-document. Handig voor het construeren van eindpunten zonder hardcoding.

// 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)

Gegevenstypen

API Eindpunten

De parameter moet een API Endpoint zijn voor een Layer, een Layer Variant, een Layer Set, een Source of een Output Destination. U kunt deze API Endpoints verkrijgen door rechts te klikken op het object in het mimoLive-document. Er zou een contextmenu moeten verschijnen met een menu-item 'Copy API Endpoint to Clipboard'.

Deze actie kopieert het API Endpoint voor dit object naar het klembord. Als u het ergens anders plakt, ziet het er ongeveer zo uit:

/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

Voor laaggerelateerde opdrachten kunt u de API Eindpunten naar het belangrijke deel alleen door het voorvoegsel "/api/v1/documents//layers/" te verwijderen. Dit maakt uw script korter, zoals hier te zien is:

// 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")

 

Beste praktijk

API Eindpunten

Hoe API-eindpunten verkrijgen

  • Door met de rechtermuisknop op de laag te klikken en "Copy API Endpoint" te selecteren
  • door de opdracht getAPIEndpoint() te gebruiken (zie documentatie)

API-eindpunten adresseren

U kunt het volledige API eindpunt gebruiken of het gedeelte "/api/v1/documents//" verwijderen om ervoor te zorgen dat uw script ook werkt als het naar een ander document gekopieerd wordt. Het document ID is echter belangrijk als u een API punt in een ander mimoLive document wilt adresseren.

Scripts debuggen

Er is een scriptdebugger ingebouwd in de Automatiseringslaag. U kunt de laag in de Debugmodus zetten door de laagparameter "Debug" aan te zetten.

TBD.

Scripting ideeën

Draai elke 10 minuten een advertentie

In combinatie met een "PIP Window" laag een "Media Playlist bron" met meerdere korte reclamefilmpjes kunt u elke 10 minuten een reclame afspelen. Zorg ervoor dat u de optie "Non-Stop" in de Media Playlist-bron uitschakelt. Zo wordt elke keer dat de PIP Het venster wordt ingesteld op live en speelt één advertentie van de Playlist-bron af en schakelt zichzelf uit. Na 10 minuten wordt de volgende advertentie afgespeeld.

Voer een stinger uit voordat je naar een bepaalde laag overschakelt.

Je moet een korte stinger video voorbereiden die een In-transitie heeft totdat het het hele scherm bedekt (bijv. na 1 sec). Na 1 seconde schakel je live de laag die je wilt onthullen. Plaats deze laag onder de laag die de stinger video afspeelt. Nu de stinger video het scherm bedekt is het schakelen van de laag eronder niet te zien. De stinger video moet doorgaan met het onthullen van de laag eronder. Zorg ervoor dat de stinger video is gerenderd in ProRes4444 video codec zodat het de transparantie draagt die nodig is voor de overgang ermee.

Maak een complexe showopener

Omdat je lagen na elkaar kunt aan- en uitschakelen over een langere periode, kun je meerdere tekst- of annotatielagen, plaatsingslagen met afbeeldingen of zelfs onderlagen die het scherm vullen hebben om je eigen geanimeerde showopener te maken. Ga creatief aan de slag!

Een afstandsbediening activeren HTTP URL door een tik op het afstandsbedieningsoppervlak

Als u een HTTP Verzoek door een knop op uw Afstandsbedieningsoppervlak kun je een Automatiseringslaag toevoegen aan je lagenstapel en de optie "Laag uitschakelen" van die laag op "Automatisch" zetten. Nu kun je een enkel httpRequest() commando in het "On Live" scriptveld zetten. Voeg op je Remote Control Surface de Live-knop van deze laag toe aan de lay-out. Zodra u op deze knop op uw Remote Control Surface drukt, wordt de HTTP verzoek zal worden uitgevoerd.

Uw feedback

Hoe beoordeelt u uw ervaring met deze functie van mimoLive?

Gebruikershandleiding: Recente updates

Eindpunten

Algemeen De API is, indien ingeschakeld, beschikbaar op "http://localhost:8989/api/v1". Dit is de basis URL die

Read More "

Automatiseringslaag

Stroomlijn uw productie met de Automation Layer van mimoLive De Automation Layer van mimoLive werd oorspronkelijk ontwikkeld als

Read More "