Neste vídeo, mostro como fazer uma contagem de tempo para rodeio no VMIX, utilizando um sistema de milisegundos, com as funções de script e também teclas de atalho.
Script para contagem de tempo
' Variável de controle para garantir que o script não seja executado simultaneamente
static isRunning as Boolean = False
' Verifica se o script já está rodando
if isRunning then
' Se o script já estiver em execução, não faz nada e termina
Exit Sub
end if
' Marca o script como em execução
isRunning = True
' Define o tempo inicial
dim startTime as DateTime = DateTime.Now
' Define a duração da contagem (8 segundos)
dim duration as TimeSpan = TimeSpan.FromSeconds(8)
' Loop para atualizar a contagem crescente
do while DateTime.Now - startTime < duration
' Calcula o tempo decorrido
dim elapsedTime as TimeSpan = DateTime.Now - startTime
' Formata o tempo decorrido: segundos e milissegundos com 3 casas
dim seconds as String = elapsedTime.Seconds.ToString("D2")
dim milliseconds as String = elapsedTime.Milliseconds.ToString("D3")
' Junta os valores no formato desejado (SS.mmm)
dim formattedTime as String = seconds & "." & milliseconds
' Atualiza o campo do título no vMix
API.Function("SetText", Input:="Tempo", SelectedName:="Message.Text", Value:=formattedTime)
' Pausa curta para permitir a atualização do vMix (a cada 50ms)
System.Threading.Thread.Sleep(50)
loop
' Após a contagem crescente, exibir "08.000"
API.Function("SetText", Input:="Tempo", SelectedName:="Message.Text", Value:="08.000")
' Define que o script terminou e pode ser executado novamente
isRunning = False
Script para zerar o tempo
' Altera o conteúdo do campo de texto para "00.000"
API.Function("SetText", Input:="Tempo", SelectedName:="Message.Text", Value:="00.000")