Sederhanakan Produksi Anda dengan Lapisan Otomatisasi mimoLive
Anda saat ini sedang melihat konten placeholder dari YouTube. Untuk mengakses konten yang sebenarnya, klik tombol di bawah ini. Harap diperhatikan bahwa hal tersebut akan membagikan data dengan penyedia pihak ketiga.
Informasi Lebih LanjutLapisan Otomasi mimoLive pada awalnya dikembangkan sebagai bukti konsep, namun sejak saat itu terbukti menjadi alat yang sangat berguna bagi para pengguna. Layer ini dapat digunakan untuk mengotomatiskan pengaktifan dan penonaktifan layer dalam urutan tertentu atau pada waktu yang telah ditentukan, mengambil data dari sumber jarak jauh melalui HTTP dan mendorong informasi yang telah diproses ke bidang input layer, memulai dan menghentikan Tujuan Keluaran, dan masih banyak lagi!
Skrip Otomasi di mimoLive Tidak Berjalan dalam Waktu Nyata
Harap diperhatikan bahwa waktu skrip otomatisasi di mimoLive mungkin tidak akurat karena sifat asinkron dari permintaan HTTP yang dipanggil oleh mesin perender video. Beberapa perintah skrip mengirimkan permintaan HTTP ke API mimoLive dan panjang permintaan ini tidak dapat ditentukan secara akurat, sehingga mengakibatkan potensi perbedaan waktu. Ingatlah hal ini saat menggunakan skrip otomatisasi dalam alur kerja produksi Anda.
Prasyarat
Agar lapisan ini berfungsi, Anda harus mengaktifkan Server HTTP di mimoLive untuk mengaktifkan API Kontrol Jarak Jauh. Buka mimoLive > Preferensi > Kontrol Jarak Jauh: Centang opsi "Allow Remote Control Access". (Saat ini lapisan Otomasi di mimoLive hanya berfungsi tanpa kata sandi)

Mengatur Lapisan Otomasi
Terdapat dua opsi mengenai bagaimana layer akan berperilaku setelah diaktifkan secara langsung:
Opsi | Perilaku |
Menonaktifkan lapisan secara otomatis | Opsi ini bersifat tunggal karena setelah skrip selesai dijalankan, layer akan secara otomatis dimatikan. Gunakan opsi ini bila skrip hanya perlu dijalankan sekali saja. |
Menonaktifkan lapisan secara manual (misalnya oleh operator) | Dalam mode ini, tersedia tiga skrip: - Saat Live - Berjalan sekali ketika layer diaktifkan secara langsung. - Saat Live - Berjalan terus menerus sebagai perulangan tanpa akhir setelah skrip On Live selesai. - Dimatikan - Berjalan sekali ketika layer dimatikan. Ketika layer dimatikan, skrip While Live dihentikan sebelum skrip Turned Off dijalankan. Jika layer diaktifkan lagi, Anda dapat menghidupkan kembali kondisi sebelumnya. |
Komentar Kode Sumber
Untuk mengingat tujuan dan fungsionalitas skrip Anda, kami sarankan untuk menambahkan komentar di dalam kode. Mulailah setiap baris komentar dengan //.
// First sleep for 5 seconds...
sleep(5)
// ...then start the Stop Watch layer:
layerOn("7C4665C4-0E17-4F63-BCFF-B59D68D75956")
Perintah Penulisan Skrip
Bahasa skrip adalah hak milik dan menyertakan beberapa perintah. Perintah-perintah ini tercantum dalam lembar sontekan pada pratinjau layer di sebelah kanan. Jika daftar ini sulit dibaca, Anda bisa memperluas pratinjau dengan mengeklik tombol yang terletak di atas dan di sebelah kanan area pratinjau.
layerOn()
Mengaktifkan layer atau varian layer berdasarkan ID atau URL API Endpoint, atau berdasarkan variabel.
// 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 Lapisan sebagai Ekspresi String>)
Menonaktifkan layer atau varian layer berdasarkan ID atau URL API Endpoint, atau berdasarkan variabel.
// 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 Layer Set ID sebagai Ekspresi String>)
Memicu penarikan kembali untuk Layer Set tertentu.
// 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 Tujuan Keluaran API sebagai Ekspresi String>)
Mengaktifkan Tujuan Keluaran.
// memulai Tujuan Output dengan idnya
outputOn("1953186E-4176-4849-A8ED-5B47EE1627BD")
// memulai Tujuan Keluaran dengan URL Titik Akhir API yang panjang
outputOn("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")
// memulai Tujuan Output dengan variabel yang ditentukan
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOn($myOutputDestinationtID)
outputOff(<ID Tujuan Keluaran API sebagai Ekspresi String>)
Mematikan Tujuan Keluaran.
// hentikan Tujuan Keluaran berdasarkan idnya
outputOff("1953186E-4176-4849-A8ED-5B47EE1627BD")
// hentikan Tujuan Keluaran dengan URL Titik Akhir API yang panjang
outputOff("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")
// menghentikan Tujuan Output dengan variabel yang ditentukan
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOff($myOutputDestinationtID)
getLayerData()1TP11NamaVariabelHasil, , )
Mengambil data lapisan dengan jalur kunci. <Perintah ini menggabungkan beberapa perintah dalam satu langkah skrip: Perintah ini mengambil informasi layer dari server HTTP dan menyimpan bidang data tertentu dari respons JSON ke dalam sebuah variabel. Anda membutuhkan jalur yang tepat ke nilai yang ingin Anda baca. Untuk parameter input layer, jalur ini biasanya dimulai dengan '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(1TP11NamaVariabelHasil, , )
Mengambil API Endpoint untuk objek mimoLive tertentu dengan nama tampilannya. <Perlu diingat bahwa nama tampilan dapat diubah kapan saja oleh operator di antarmuka pengguna mimoLive. Jika nama berubah, skrip otomatisasi mungkin gagal karena tidak dapat menemukan objek yang ditentukan. Di sisi lain, perintah ini berguna untuk menemukan titik akhir API secara terprogram tanpa harus mengetikkan ID-nya dalam skrip.
Berfungsi untuk "sumber", "lapisan", "varian-lapisan", "kumpulan-lapisan", "tujuan-luaran".
// Get the API Endpoint for the Basketball Score layer
getObjectIDByName($myBasketballScoreLayerID, "layer", "My Basketball Score Keeper")
// switch this layer on
layerOn($myBasketballScoreLayerID)

tidur(<Detik> sebagai angka)
Menjeda eksekusi skrip selama beberapa detik.
// 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(<Waktu sebagai Ekspresi String>)
Jeda hingga waktu jam tertentu (HH:MM atau 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()
Menjeda skrip hingga pecahan 'on the minute' berikutnya dari satu jam tercapai.
// 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)
setVariabel($variableName, <nilai>)
Membuat atau mengubah variabel lokal (dimulai dengan $). Nilai dapat berupa string, angka, atau boolean.
setVariable($myText, "This is a text")
setVariable($myNumber, 15.73)
setVariable($myBoolValue, false)
setGlobal()$variableName, <nilai>)
Membuat atau mengubah variabel global yang digunakan bersama di seluruh lapisan otomatisasi.
Harap diperhatikan bahwa variabel global dapat diakses oleh layer Otomasi lainnya selama layer asal masih aktif. Pengaturan ini memungkinkan Anda untuk mengganti variabel global dengan mengaktifkan layer yang berbeda dengan definisi variabel global yang berbeda. Praktik terbaik dalam skenario ini adalah mengatur opsi 'Matikan Layer' pada layer Otomasi ke 'Secara Manual' dan mendefinisikan variabel global dalam skrip 'Aktif'.
setGlobal($myGlobalText, "This is a text")
setGlobal($myGlobalNumber, 15.73)
setGlobal($myGlobalBoolValue, false)
concat($resultVariableName, )
Menggabungkan ekspresi string.
// 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(, , , )
Perintah ini membuat string baru dengan mengganti semua kemunculan string pencarian di dalam string sumber. Hasilnya disimpan dalam variabel hasil yang ditentukan.
// 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(1TP11NamaVariabelHasil, )
Perintah ini melakukan perhitungan matematika sederhana, termasuk penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/). Harap diperhatikan bahwa perhitungan dilakukan sesuai urutan yang muncul dan TIDAK mengikuti aturan 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, [, , ...])
Perintah list membuat sebuah daftar dan memasukkannya ke dalam variabel hasil. Anda dapat menggunakan variabel list dalam perintah getListItem untuk mengulang daftar ini.
// create a list and put it into a variable
list($myList, "A", "B", "C", "D")
appendToList($listVariableName, )
Perintah ini akan menambahkan nilai tertentu ke daftar yang sudah ada.
// 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(1TP18NamaVariabelHasil, 1TP18NamaDaftarVariabel, )
Dengan perintah ini Anda dapat mengambil item tertentu dari daftar yang ditentukan oleh perintah list. Harap diperhatikan bahwa nomor item dimulai dari 1, berbeda dengan banyak bahasa pemrograman lain yang sering kali array dimulai dengan indeks 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(1TP18HasilHitunganDaftarVariabelNama, 1TP18DaftarVariabelNama)
Dengan perintah ini Anda bisa mendapatkan jumlah item dalam variabel daftar yang Anda buat dengan 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
Pernyataan if ini membandingkan dua ekspresi numerik menggunakan pembanding tertentu. Jika perbandingannya benar, maka perintah berikutnya akan dieksekusi. Jika tidak, perintah selanjutnya akan dilewati hingga else
atau endif
tercapai.
Pembanding yang valid adalah:
“==” | sama dengan |
“!=” | tidak sama |
">" | lebih besar dari |
"<" | kurang dari |
">=" | lebih besar atau sama dengan |
"<=" | kurang atau memenuhi syarat dari |
// 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
Pernyataan ifString ini membandingkan dua ekspresi string menggunakan pembanding tertentu. Perbandingan didasarkan pada kode karakter ASCII dari setiap huruf dalam string. Jika perbandingannya benar, maka perintah berikut akan dijalankan. Jika tidak, perintah selanjutnya akan dilewati hingga else
atau endif
tercapai.
Untuk pembanding yang valid, lihat perintah 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 Lapisan sebagai Ekspresi String>) - ifLayerIsOff(<API ID Lapisan sebagai Ekspresi String>) [else] endif
Pernyataan if ini menguji apakah layer tertentu sedang aktif atau tidak. Jika kondisi yang ditentukan terpenuhi (layer aktif atau tidak aktif), maka perintah-perintah berikutnya akan diproses. Jika tidak, perintah selanjutnya akan dilewati hingga else
atau endif
tercapai.
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 Lapisan sebagai Ekspresi String>) - ifLayerSetIsInactive(<API ID Lapisan sebagai Ekspresi String>) [else] endif
Pernyataan if ini menguji apakah Layer Set tertentu saat ini aktif atau tidak. Jika ya, perintah berikut akan diproses. Jika tidak, perintah selanjutnya akan dilewati hingga else
atau endif
tercapai.
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
Perintah kompleks ini memungkinkan Anda untuk menguji parameter apa pun dari layer yang HTTP API yang disediakan. Anda perlu menentukan lapisan dengan ID API-nya, jalur kunci dalam data JSON yang dikembalikan oleh API HTTP, pembanding (sebagai string dalam tanda kutip, misalnya, "=="
), dan nilai.
Nilai pembanding yang valid adalah:
“==” | sama dengan |
“!=” | tidak sama |
">" | lebih besar dari |
"<" | kurang dari |
">=" | lebih besar atau sama dengan |
"<=" | kurang atau memenuhi syarat dari |
// 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
Perintah loop
memungkinkan Anda untuk mengeksekusi kode beberapa kali. Jika Anda tidak menentukan jumlah perulangan, perulangan akan berjalan tanpa batas. Perintah break
memungkinkan Anda keluar dari perulangan kapan saja. endloop
diperlukan untuk menandai akhir blok perintah yang harus diulang.
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()
The httpRequest()
memicu URL yang diberikan. Hal ini menawarkan banyak fleksibilitas dalam cara Anda menggunakan perintah skrip ini. Dalam mimoLive
bahkan dapat memicu tindakan di dokumen lain atau skrip jarak jauh. Untuk detail tentang mimoLive
Perintah HTTP API, silakan baca bagian HTTP API dokumentasi untuk menjelajahi semua panggilan API yang memungkinkan.
// aktifkan sebuah layer
httpRequest("http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive")
httpRequestJSON($resultVariableName, )
Perintah ini membaca respons dari panggilan HTTP sebagai JSON dan menyimpan data dalam variabel hasil yang ditentukan. Setelah itu, Anda dapat mengakses data melalui perintah getJSONData() .
getJSONData($resultVariabelName, $jsonDataVariabel, )
Perintah ini mengambil nilai data tertentu dari struktur JSON yang disimpan dalam sebuah variabel. Anda perlu menentukan variabel yang berisi data JSON ($jsonDataVariable), jalur ke data dalam struktur JSON (Key Path sebagai Ekspresi String), dan variabel tempat hasil harus disimpan (1TP18HasilNama Variabel). Hal ini memungkinkan ekstraksi data yang tepat untuk diproses lebih lanjut atau digunakan dalam skrip Anda. Jalur kunci dapat berisi referensi ke elemen dalam larik, misalnya "myarray.[12].myvalue" akan menampilkan elemen nilai dari myvalue dari larik yang disebut myarray pada elemen 12. (jumlah elemen dimulai dari 1).
// mendapatkan semua data layer
httpRequestJSON($myLayerData, "http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B")// mendapatkan nilai panggilan volume
getJSONData($volumenDial, $myLayerData, "data.attributes.volume") // Sekarang, variabel $volumenDial akan menyimpan nilai antara 0 dan 1.
setJSONData(, , )
Menuliskan nilai ke dalam variabel JSON pada jalur kunci yang disediakan. Gunakan ini untuk memodifikasi JSON yang telah Anda buat atau ambil dengan httpRequestJSON. Jalur kunci dipisahkan dengan tanda titik.
// set fields setJSONData($json, "data.attributes.input-values.title", "My Headline") setJSONData($json, "data.attributes.volume", 0.75)
JSONToString(, )
Menserialisasikan variabel objek JSON menjadi string ringkas (berguna untuk mencatat, mengirim, atau menyimpan).
// assume $json already contains data
JSONToString($jsonString, $json)
// $jsonString now holds the serialized JSON text
urlEncode(, )
URL mengkodekan string sehingga dapat digunakan dengan aman dalam parameter kueri atau jalur dalam permintaan http.
// build a query value and encode it
setVariable($q, "mimoLive tips & tricks")
urlEncode($qEncoded, $q)
// $qEncoded -> "mimoLive%20tips%20%26%20tricks"
urlDecode(, )
URL-menguraikan kembali string yang dikodekan persen menjadi teks yang dapat dibaca.
// decode an encoded query value
setVariable($raw, "mimoLive%20tips%20%26%20tricks")
urlDecode($decoded, $raw)
// $decoded -> "mimoLive tips & tricks"
berhenti
Menghentikan skrip yang sedang berjalan dengan segera. Berguna untuk keluar lebih awal setelah suatu kondisi terpenuhi.
// 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
> (Titik putus untuk debugger)
Ketika debugger skrip diaktifkan dan mode debug diatur ke 'Terus-menerus', eksekusi skrip akan berhenti di penanda ini dan menunggu sampai operator mimoLive mengeklik tombol 'Langkah Berikutnya'. Silakan lihat 'Praktik Terbaik - Debugging Skrip' untuk informasi lebih lanjut tentang kemungkinan debugging.
// 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")
Konstanta: $DOCUMENT_ID
Memegang API document ID untuk dokumen mimoLive saat ini. Berguna untuk membangun titik akhir tanpa 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)
Tipe Data
API Titik akhir
Parameter harus berupa API Endpoint untuk Layer, Layer Variant, Layer Set, Sumber, atau Tujuan Output. Anda dapat memperoleh API Endpoint ini dengan mengklik kanan pada objek di dokumen mimoLive. Menu konteks akan muncul dengan item menu 'Salin API Endpoint ke Clipboard'.
Tindakan ini akan menyalin API Endpoint untuk objek ini ke clipboard. Jika Anda menempelkannya di tempat lain, maka akan terlihat seperti ini:
/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
Untuk perintah yang berhubungan dengan layer, Anda dapat mengurangi tombol API Akhiri bagian yang penting saja dengan menghapus awalan "/api/v1/documents//layers/". Hal ini akan membuat skrip Anda menjadi lebih pendek seperti yang ditunjukkan di sini:
// 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")
Praktik Terbaik
Titik Akhir API
Cara mendapatkan Titik Akhir API
- Dengan mengklik kanan pada layer dan memilih "Copy API Endpoint"
- dengan menggunakan perintah getAPIEndpoint() (lihat dokumentasi)
Mengatasi Titik Akhir API
Anda dapat menggunakan titik akhir API yang lengkap atau menghapus bagian "/api/v1/documents//" untuk memastikan skrip Anda juga berfungsi ketika disalin ke dokumen lain. Namun ID dokumen penting jika Anda ingin mengalamatkan titik API di dokumen mimoLive yang berbeda.
Skrip Debugging
Terdapat debugger skrip yang sudah terpasang di dalam layer Automation. Anda dapat mengalihkan layer ke Mode Debugging dengan mengatur parameter layer "Debug" ke aktif.
TBD.
Ide Penulisan Naskah
Jalankan iklan setiap 10 menit
Dalam kombinasi dengan "PIP Jendela" layer "Sumber Daftar Putar Media" yang berisi beberapa klip film iklan pendek, Anda dapat memutar satu iklan setiap 10 menit. Pastikan untuk menghapus centang pada opsi "Non-Stop" di sumber Daftar Putar Media. Dengan cara ini setiap kali PIP Jendela yang diatur untuk hidup akan memutar satu iklan dari sumber Daftar Putar dan mematikannya sendiri. Setelah 10 menit, iklan berikutnya akan diputar ulang.
Jalankan stinger sebelum Anda beralih ke lapisan tertentu
Anda perlu menyiapkan video stinger pendek yang akan memiliki transisi In-transition hingga menutupi semua layar (misalnya setelah 1 detik). Setelah 1 detik, Anda dapat mengaktifkan layer yang ingin Anda tampilkan. Letakkan layer ini di bawah layer yang sedang memutar video stinger. Sekarang setelah video stinger menutupi layar, perpindahan layer di bawahnya tidak akan terlihat. Video stinger akan terus berlanjut dengan menampilkan layer di bawahnya. Pastikan video stinger dirender dalam codec video ProRes4444 sehingga memiliki transparansi yang diperlukan untuk transisi.
Membuat pembuka acara yang kompleks
Karena Anda dapat mengaktifkan dan menonaktifkan lapisan satu demi satu dalam jangka waktu yang lebih lama, Anda dapat memiliki beberapa lapisan Teks atau Anotasi, lapisan Penempatan yang menampilkan grafik, atau bahkan sepertiga bagian bawah yang memenuhi layar untuk membuat pembuka acara animasi Anda sendiri. Jadilah kreatif!
Memicu remote HTTP URL dengan satu ketukan pada Permukaan Remote Control
Jika Anda perlu memicu HTTP Permintaan dengan tombol di Permukaan Kontrol Jarak Jauh Anda dapat menambahkan layer Automation ke tumpukan layer Anda dan mengatur opsi "Switch Layer Off" pada layer tersebut ke "Automatically". Sekarang Anda dapat memasukkan satu perintah httpRequest() di bidang skrip "On Live". Pada Permukaan Remote Control Anda, tambahkan tombol Live pada layer ini ke tata letak. Setelah Anda menekan tombol ini pada Remote Control Surface, tombol HTTP permintaan akan dilakukan.