{"id":20118,"date":"2026-11-12T09:17:39","date_gmt":"2026-11-12T09:17:39","guid":{"rendered":"https:\/\/www.largedisplaysolutions.com\/?page_id=20118"},"modified":"2026-11-12T10:28:00","modified_gmt":"2026-11-12T10:28:00","slug":"documentacao-da-api-http-do-ldsperimetral","status":"publish","type":"page","link":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/documentacao-da-api-http-do-ldsperimetral\/","title":{"rendered":"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1976px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_6 1_6 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:16.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:11.52%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:11.52%;--awb-width-medium:16.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:11.52%;--awb-spacing-left-medium:11.52%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><article lang=\"en\" style=\"max-width:1100px;margin:0 auto;padding:16px 4px;color:#243442;background:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.75;\">\n\n<h1 id=\"http-api\" style=\"margin:0 0 24px;color:#173d4a;font-size:2.25em;line-height:1.2;font-weight:700;\">API HTTP do LDSperimetral<\/h1>\n\n<p style=\"margin:0 0 22px;\">Vers\u00e3o: <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">1.58.1<\/code><\/p>\n\n<p style=\"margin:0 0 22px;\">\u00daltima atualiza\u00e7\u00e3o: <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">2026-11-12<\/code><\/p>\n\n<p style=\"margin:0 0 22px;\">Esta refer\u00eancia descreve os servi\u00e7os implementados de controle do player e de medi\u00e7\u00e3o onTV. Todos os exemplos s\u00e3o ilustrativos.<\/p>\n\n<h2 id=\"contents\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">\u00cdndice<\/h2>\n\n<ul style=\"margin:0 0 28px;padding-left:24px;\">\n\n<li style=\"margin:8px 0;\"><a href=\"#setup\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Configura\u00e7\u00e3o e acesso<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#responses\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Requisi\u00e7\u00f5es e respostas<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#player-routes\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Rotas do player<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#parameters\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Par\u00e2metros<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#player-data\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Dados do player<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#ontv\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Rotas e dados do onTV<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#examples\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Exemplos<\/a><\/li>\n\n<li style=\"margin:8px 0;\"><a href=\"#limitations\" style=\"color:#17677a;text-decoration:underline;text-underline-offset:3px;\">Limita\u00e7\u00f5es<\/a><\/li>\n\n<\/ul>\n\n<h2 id=\"setup\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Configura\u00e7\u00e3o e acesso<\/h2>\n\n<p style=\"margin:0 0 22px;\">Utilize uma instala\u00e7\u00e3o funcional do LDSperimetral no Windows com o seu tempo de execu\u00e7\u00e3o .NET Framework 4.7.2 e a configura\u00e7\u00e3o normal do player. A aplica\u00e7\u00e3o deve estar em execu\u00e7\u00e3o. A API \u00e9 hospedada pela pr\u00f3pria aplica\u00e7\u00e3o, e n\u00e3o por um servidor separado.<\/p>\n\n<p style=\"margin:0 0 22px;\">Na janela de configura\u00e7\u00e3o do terminal, ative o controle remoto do player para o servi\u00e7o do player. Ative o medidor onTV separadamente para o servi\u00e7o de estat\u00edsticas. Salve e aplique a configura\u00e7\u00e3o do terminal. A janela rejeita a mesma porta utilizada pela porta de rede de sincroniza\u00e7\u00e3o. As configura\u00e7\u00f5es armazenadas correspondentes em <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">config\/terminals.xml<\/code> s\u00e3o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">remote_player_enabled<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">on_tv_meter_enabled<\/code> e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">port<\/code>. Ambos os sinalizadores de ativa\u00e7\u00e3o t\u00eam como padr\u00e3o o valor falso (false). O padr\u00e3o no c\u00f3digo para <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">port<\/code> \u00e9 <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">8083<\/code>; uma instala\u00e7\u00e3o existente pode utilizar outra porta.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Servi\u00e7o<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">URL Base<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Player<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">http:\/\/HOST:PORT\/ws\/remoteplayer\/<\/code><\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Estat\u00edsticas onTV<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">http:\/\/HOST:PORT\/ws\/statsmeter\/<\/code><\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Interface de navegador onTV<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">http:\/\/HOST:PORT\/ontvmeter<\/code><\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">Substitua <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">HOST<\/code> pelo endere\u00e7o do computador do player e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">PORT<\/code> pela porta HTTP configurada. Utilize <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">127.0.0.1<\/code> apenas a partir desse computador. O host \u00e9 vinculado a <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">http:\/\/0.0.0.0:PORT\/<\/code>; este n\u00e3o \u00e9 um destino de cliente. Permiss\u00f5es de URL do Windows, regras de firewall e acessibilidade de rede podem afetar o acesso. A inicializa\u00e7\u00e3o pode solicitar permiss\u00e3o para abrir a porta TCP do firewall e conceder uma reserva de URL do Windows. Siga os avisos da aplica\u00e7\u00e3o, incluindo uma reinicializa\u00e7\u00e3o quando solicitada.<\/p>\n\n<p style=\"margin:0 0 22px;\">O servi\u00e7o utiliza HTTP simples e um <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">WebHttpBinding<\/code> padr\u00e3o. Nenhuma chave de API, login, autoriza\u00e7\u00e3o por comando ou lista de permiss\u00f5es de IP de cliente \u00e9 implementada nestes servi\u00e7os. Clientes acess\u00edveis podem emitir comandos de reprodu\u00e7\u00e3o e medi\u00e7\u00e3o. Restrinja o acesso \u00e0 rede a clientes confi\u00e1veis. As reservas de URL do Windows autorizam o processo do servidor a escutar; elas n\u00e3o autenticam os chamadores da API. Nenhuma configura\u00e7\u00e3o de HTTPS ou CORS \u00e9 fornecida por este host. O acesso de origens cruzadas (cross-origin) pelo navegador n\u00e3o \u00e9 uma interface garantida.<\/p>\n\n<h2 id=\"responses\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Requisi\u00e7\u00f5es e respostas<\/h2>\n\n<p style=\"margin:0 0 22px;\">Todas as rotas abaixo utilizam <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">GET<\/code>, incluindo comandos que alteram o estado. Acrescente cada rota \u00e0 sua URL base de servi\u00e7o. Nenhum corpo de requisi\u00e7\u00e3o ou par\u00e2metro de consulta \u00e9 declarado. Os espa\u00e7os reservados entre chaves s\u00e3o segmentos de caminho obrigat\u00f3rios, a menos que a rota descreva explicitamente o caractere curinga de parada de sobreposi\u00e7\u00e3o. N\u00e3o envie as chaves literalmente.<\/p>\n\n<p style=\"margin:0 0 22px;\">As respostas utilizam serializa\u00e7\u00e3o JSON do WCF e um objeto comum:<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo JSON<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">status<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">inteiro<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Status da aplica\u00e7\u00e3o conforme a tabela abaixo.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">message<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string ou nulo<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Texto de diagn\u00f3stico; n\u00e3o \u00e9 um identificador est\u00e1vel.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">result<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">valor espec\u00edfico da rota<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Booleano, string, objeto, array ou nulo.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Valor<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Identificador<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">0<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">OK<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Nenhum erro de aplica\u00e7\u00e3o relatado.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">1<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">COUNTER_NOT_EXIST<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Definido na enumera\u00e7\u00e3o compartilhada; n\u00e3o retornado explicitamente por estas rotas.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">2<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">TIMER_NOT_EXIST<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Definido na enumera\u00e7\u00e3o compartilhada; n\u00e3o retornado explicitamente por estas rotas.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">3<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">INTERNAL_ERROR<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">O processamento da requisi\u00e7\u00e3o falhou.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">4<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">PLAYLIST_NOT_FOUND<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Nenhuma playlist dispon\u00edvel correspondeu.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">5<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">INVALID_ARGUMENT<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">\u00cdndice de sequ\u00eancia inv\u00e1lido, in\u00edcio de playlist vazio ou brilho n\u00e3o inteiro.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">6<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">SEQUENCE_NOT_FOUND<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Nenhuma sobreposi\u00e7\u00e3o dispon\u00edvel correspondeu.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">7<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">SERVICE_NOT_READY<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Controle do player indispon\u00edvel ou encerrando, ou controles de brilho indispon\u00edveis.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">Os erros da aplica\u00e7\u00e3o s\u00e3o retornados neste inv\u00f3lucro sem alterar explicitamente o status HTTP. Um erro de aplica\u00e7\u00e3o serializado normalmente permanece, portanto, uma resposta de sucesso HTTP. Inspecione sempre o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">status<\/code> e, em seguida, o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">result<\/code> esperado. Um erro de transporte ou de roteamento WCF pode ter um corpo diferente e n\u00e3o deve ser analisado como um inv\u00f3lucro garantido. Os testes esperam o c\u00f3digo HTTP <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">404<\/code> para uma rota desconhecida e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">405<\/code> para um m\u00e9todo n\u00e3o suportado; essas expectativas n\u00e3o foram verificadas em um host em execu\u00e7\u00e3o para esta refer\u00eancia.<\/p>\n\n<p style=\"margin:0 0 22px;\">Para comandos booleanos, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">status: 0<\/code> e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">result: true<\/code> significam que o caminho do comando foi processado. Eles n\u00e3o comprovam uma sa\u00edda audiovisual bem-sucedida ou a conclus\u00e3o de uma transi\u00e7\u00e3o. Alguns m\u00e9todos secund\u00e1rios capturam erros ou n\u00e3o fazem nada quando nenhuma renderiza\u00e7\u00e3o existe. Consulte <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">get_reproduction_state<\/code> ap\u00f3s um comando e aguarde o estado pretendido com um tempo limite (timeout) definido pelo cliente. N\u00e3o h\u00e1 ID de comando, endpoint de conclus\u00e3o, notifica\u00e7\u00e3o por push ou prazo de transi\u00e7\u00e3o especificado. N\u00e3o envie repetidamente um comando enquanto aguarda o seu efeito.<\/p>\n\n<p style=\"margin:0 0 22px;\">Exceto para <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ping<\/code>, as opera\u00e7\u00f5es do player passam pelo despachante da janela de controle quando dispon\u00edvel. Isso serializa o acesso de controle na thread da interface do usu\u00e1rio (UI thread), mas n\u00e3o torna requisi\u00e7\u00f5es HTTP separadas uma transa\u00e7\u00e3o at\u00f4mica. As opera\u00e7\u00f5es de estat\u00edsticas n\u00e3o utilizam este auxiliar de despacho do player.<\/p>\n\n<h2 id=\"player-routes\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Rotas do player<\/h2>\n\n<p style=\"margin:0 0 22px;\">Todos os caminhos nesta tabela s\u00e3o relativos a <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">\/ws\/remoteplayer\/<\/code>.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Rota GET<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Resultado bem-sucedido<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Efeito ou consulta<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ping<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">true<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Verifica se o servi\u00e7o responde; n\u00e3o verifica a prontid\u00e3o da renderiza\u00e7\u00e3o.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">get_instance_name<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Nome da inst\u00e2ncia configurada; pode estar vazio.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">list_playlists<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">array de PlaylistInfo<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Playlists dispon\u00edveis na ordem da cole\u00e7\u00e3o.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">list_playlist_sequences\/{playlist_name}<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">array de SequenceInfo<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Sequ\u00eancias na ordem da playlist; os \u00edndices come\u00e7am em zero.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">list_overlay_sequences<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">array de SequenceInfo<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Sequ\u00eancias de sobreposi\u00e7\u00e3o dispon\u00edveis sempre no topo (always-on-top).<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">get_reproduction_state<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">ReproductionState<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Estado atual de controle e renderiza\u00e7\u00e3o.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_playlist\/{playlist_name}<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Inicia a playlist selecionada, incluindo playlists de a\u00e7\u00e3o r\u00e1pida. Playlists vazias s\u00e3o rejeitadas.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_sequence\/{playlist_name}\/{sequence_number}<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Inicia a sequ\u00eancia existente selecionada.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_aot_sequence\/{sequence_name_or_file}<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Inicia a sobreposi\u00e7\u00e3o selecionada sempre no topo sobre o plano de fundo.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_aot_sequence\/*<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Manipulador de parada com curinga. Utilize <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_aot_sequence\/<\/code> para remover a sobreposi\u00e7\u00e3o; mantenha a barra (slash) final. N\u00e3o envie um asterisco literal.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">stop<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Chama a opera\u00e7\u00e3o de parada do player. Consulte o estado para confirmar se a reprodu\u00e7\u00e3o parou.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">pause<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Pausa se a renderiza\u00e7\u00e3o j\u00e1 n\u00e3o estiver pausada.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">resume<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Retoma a reprodu\u00e7\u00e3o se a renderiza\u00e7\u00e3o estiver pausada.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">pauseresume<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Alterna (faz toggle) o estado de pausa da renderiza\u00e7\u00e3o.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">play_next<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Inicia a pr\u00f3xima sequ\u00eancia; retorna do \u00faltimo para o primeiro item. N\u00e3o faz nada sem uma sequ\u00eancia e playlist ativas.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">quick_action_exit<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Solicita a sa\u00edda quando a renderiza\u00e7\u00e3o estiver no modo de a\u00e7\u00e3o r\u00e1pida; caso contr\u00e1rio, n\u00e3o faz nada.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">set_global_brightness\/{brightness_tpc}<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Define cada valor de matriz de brilho dispon\u00edvel para a porcentagem fornecida dividida por 100. Nenhuma consulta HTTP de brilho est\u00e1 definida.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">A rota de sobreposi\u00e7\u00e3o nomeada \u00e9 mais espec\u00edfica do que a com curinga. Um nome de sobreposi\u00e7\u00e3o inexistente retorna <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">SEQUENCE_NOT_FOUND<\/code>; n\u00e3o se trata de uma requisi\u00e7\u00e3o de parada. O roteamento com curinga de final vazio (empty-tail) e outros casos extremos de caminhos codificados ainda exigem valida\u00e7\u00e3o do host.<\/p>\n\n<h2 id=\"parameters\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Par\u00e2metros<\/h2>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Par\u00e2metro<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e regras<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">playlist_name<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">String obrigat\u00f3ria. Corresponde exatamente ao nome da playlist ou ao nome base (basename) de seu arquivo de defini\u00e7\u00e3o, incluindo a extens\u00e3o. A correspond\u00eancia diferencia mai\u00fasculas de min\u00fasculas (case-sensitive) e retorna a primeira correspond\u00eancia na cole\u00e7\u00e3o dispon\u00edvel. Um caminho de defini\u00e7\u00e3o completo n\u00e3o \u00e9 uma chave de busca de playlist.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">sequence_number<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Inteiro de 32 bits com sinal obrigat\u00f3rio, analisado com cultura invariante. Deve estar entre <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">0<\/code> e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">sequence_count - 1<\/code>. Valores negativos, n\u00e3o inteiros, com estouro (overflow) e fora do intervalo retornam <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">INVALID_ARGUMENT<\/code> ap\u00f3s a busca da playlist. Uma playlist ausente retorna <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">PLAYLIST_NOT_FOUND<\/code> primeiro.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">sequence_name_or_file<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">String obrigat\u00f3ria para o in\u00edcio da sobreposi\u00e7\u00e3o. Corresponde exatamente ao nome da sobreposi\u00e7\u00e3o, ao valor do arquivo armazenado ou ao nome base do arquivo. A correspond\u00eancia diferencia mai\u00fasculas de min\u00fasculas e retorna a primeira correspond\u00eancia. Prefira nomes ou nomes base para URLs.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">brightness_tpc<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Texto de inteiro com sinal de 32 bits obrigat\u00f3rio. Os valores num\u00e9ricos s\u00e3o limitados de <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">0<\/code> a <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">100<\/code> porcento. Valores n\u00e3o inteiros e de estouro retornam <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">INVALID_ARGUMENT<\/code>. A an\u00e1lise utiliza a cultura de inteiros padr\u00e3o do servidor. Utilize d\u00edgitos decimais simples com um sinal opcional.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">Codifique em porcentagem (percent-encode) cada segmento de caminho de string como UTF-8. Por exemplo, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Demo Show<\/code> torna-se <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Demo%20Show<\/code>; codifique um <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">+<\/code> literal como <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">%2B<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">#<\/code> como <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">%23<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">?<\/code> como <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">%3F<\/code> e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">%<\/code> como <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">%25<\/code>. N\u00e3o codifique os separadores entre os segmentos da rota. Os auxiliares de URL utilizam <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Uri.EscapeDataString<\/code> para refer\u00eancias de inicializa\u00e7\u00e3o. Barras codificadas, barras invertidas e caminhos completos de sistema de arquivos podem ser afetados pela pilha HTTP do Windows e n\u00e3o s\u00e3o verificados aqui. Prefira um nome exclusivo ou nome base sem separadores de caminho. Segmentos obrigat\u00f3rios ausentes podem causar falha no roteamento WCF antes da valida\u00e7\u00e3o da aplica\u00e7\u00e3o.<\/p>\n\n<h2 id=\"player-data\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Dados do player<\/h2>\n\n<p style=\"margin:0 0 22px;\">Os nomes dos campos abaixo s\u00e3o nomes exatos de contrato JSON. A ordem das propriedades do objeto n\u00e3o \u00e9 significativa. Os campos de arquivo cont\u00eam refer\u00eancias armazenadas e podem expor informa\u00e7\u00f5es do sistema de arquivos; n\u00e3o assuma que sejam URLs de download p\u00fablicas.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo de PlaylistInfo<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">name<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; nome da playlist.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">filename<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; refer\u00eancia do arquivo de defini\u00e7\u00e3o da playlist armazenado.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_quick_action<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; sinalizador de interrup\u00e7\u00e3o da playlist.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">has_button<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; sinalizador de bot\u00e3o de acesso r\u00e1pido.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">button_color<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">objeto; membros de cores WCF <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">A<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">B<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">G<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">R<\/code> (canais de bytes, 0\u2013255) e <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ScA<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ScB<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ScG<\/code>, <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">ScR<\/code> (canais scRGB de ponto flutuante). Isto n\u00e3o \u00e9 uma string CSS.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">sequence_count<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">inteiro; n\u00famero de sequ\u00eancias.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo de SequenceInfo<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">name<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; nome da sequ\u00eancia.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">filename<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; refer\u00eancia do arquivo de sequ\u00eancia armazenado.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_on_top<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; verdadeiro para listagens de sobreposi\u00e7\u00e3o, falso para listagens de sequ\u00eancias de playlist.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo de ReproductionState<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_playing<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; existe uma playlist ativa. N\u00e3o estabelece sa\u00edda vis\u00edvel.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_paused<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; controla o estado de pausa.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_render_active<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; sinalizador de renderiza\u00e7\u00e3o ativa, falso sem uma renderiza\u00e7\u00e3o.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">is_quickaction<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">booleano; existem uma playlist ativa e uma renderiza\u00e7\u00e3o no modo de a\u00e7\u00e3o r\u00e1pida.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_playlist<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; nome da playlist ativa, caso contr\u00e1rio, vazio.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_playlist_file<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; refer\u00eancia de defini\u00e7\u00e3o da playlist ativa, caso contr\u00e1rio, vazio.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_sequence<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; nome da sequ\u00eancia ativa, caso contr\u00e1rio, vazio.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_sequence_index<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">inteiro; \u00edndice da sequ\u00eancia ativa baseado em zero, caso contr\u00e1rio <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">-1<\/code>.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_overlay_sequence_name<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; nome da sobreposi\u00e7\u00e3o ativa, caso contr\u00e1rio, vazio.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_overlay_sequence_file<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; refer\u00eancia do arquivo de sobreposi\u00e7\u00e3o ativo, caso contr\u00e1rio, vazio.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_sequence_elapsed_time<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; contador de tempo decorrido da sequ\u00eancia multiplicado por 1000, em milissegundos.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">current_sequence_total_time<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string; dura\u00e7\u00e3o da sequ\u00eancia em milissegundos, truncada em dire\u00e7\u00e3o a zero.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">Os valores de tempo s\u00e3o strings JSON, e n\u00e3o n\u00fameros ou intervalos de tempo formatados. Ambos os campos de tempo s\u00e3o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">\"0\"<\/code> sem uma sequ\u00eancia ativa. A interpola\u00e7\u00e3o deles utiliza a cultura do servidor; n\u00e3o assuma um separador decimal invariante ou precis\u00e3o de medi\u00e7\u00e3o em milissegundos. Valores de arquivo\/nome copiados do modelo podem ser nulos. Um erro de aplica\u00e7\u00e3o pode retornar resultados nulos, vazios ou parcialmente preenchidos; verifique o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">status<\/code> antes de utiliz\u00e1-los.<\/p>\n\n<h2 id=\"ontv\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Rotas e dados do onTV<\/h2>\n\n<p style=\"margin:0 0 22px;\">Todos os caminhos nesta tabela s\u00e3o relativos a <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">\/ws\/statsmeter\/<\/code>. Mantenha a grafia <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">mesures<\/code> exatamente como exibido.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Rota GET<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Resultado bem-sucedido<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Efeito ou consulta<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">start_on_tv_interval<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">OnTVInterval<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Abre um intervalo de medi\u00e7\u00e3o; um intervalo j\u00e1 aberto \u00e9 mantido.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">stop_on_tv_interval<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">OnTVInterval<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Fecha o \u00faltimo intervalo se estiver aberto.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">state_on_tv_interval<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">OnTVInterval<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Retorna o \u00faltimo intervalo, incluindo um intervalo fechado.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">get_all_intervals_on_tv<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">array de OnTVInterval<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Retorna a lista de intervalos do medidor de renderiza\u00e7\u00e3o. Nenhuma pagina\u00e7\u00e3o ou filtro de data \u00e9 declarado.<\/td><\/tr>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">get_mesures_statistics<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">TransmissionStatistics<\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">Conta e totaliza os intervalos conclu\u00eddos.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">Estes comandos marcam per\u00edodos de medi\u00e7\u00e3o. Eles n\u00e3o iniciam nem param a reprodu\u00e7\u00e3o da playlist e n\u00e3o detectam um sinal de transmiss\u00e3o. O controlador retorna um intervalo padr\u00e3o, ou uma lista vazia para a opera\u00e7\u00e3o de listagem, quando nenhuma renderiza\u00e7\u00e3o existe. Uma renderiza\u00e7\u00e3o sem um medidor de estat\u00edsticas pode retornar nulo; iniciar e parar encontrar\u00e3o ent\u00e3o a desreferencia\u00e7\u00e3o de log do servi\u00e7o e relatar\u00e3o um erro interno. Esta pode ser uma resposta <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">OK<\/code> sem uma medi\u00e7\u00e3o real.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo de OnTVInterval<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">begin<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string DateTime JSON do WCF; in\u00edcio do intervalo.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">end<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">string DateTime JSON do WCF; fim do intervalo.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">O marcador n\u00e3o definido \u00e9 uma data com o ano <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">1970<\/code>, inicializada como 1 de janeiro de 1970. Um intervalo aberto tem um fim n\u00e3o definido. Nenhum intervalo gravado produz um objeto padr\u00e3o com ambas as datas n\u00e3o definidas. Uma parada repetida deixa um intervalo fechado inalterado. As datas originam-se de <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">DateTime.Now<\/code> no servidor. O WCF utiliza a representa\u00e7\u00e3o <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">\/Date(milliseconds[+or-offset])\/<\/code>, com poss\u00edvel escape de barra (slash) em JSON; n\u00e3o \u00e9 um contrato ISO 8601. O deslocamento opcional e o tratamento de DateTime local\/n\u00e3o especificado devem ser verificados no host implantado. N\u00e3o interprete o valor sentinela como um carimbo de data\/hora (timestamp) medido real.<\/p>\n\n<div style=\"margin:30px 0 48px;overflow-x:auto;\"><table style=\"width:100%;border-collapse:collapse;border:1px solid #bccdd3;font-size:0.95em;line-height:1.65;\">\n<thead><tr><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Campo de TransmissionStatistics<\/th><th scope=\"col\" style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;background:#e8f1f3;color:#173d4a;font-weight:700;\">Tipo e significado<\/th><\/tr><\/thead>\n<tbody>\n\n<tr style=\"background:#ffffff;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">intervals_recorded<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">inteiro; contagem onde os anos de in\u00edcio e fim diferem de <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">1970<\/code>.<\/td><\/tr>\n\n<tr style=\"background:#f5f8f9;\"><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\"><code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">total_seconds_in_tv<\/code><\/td><td style=\"padding:14px 18px;border:1px solid #bccdd3;text-align:left;vertical-align:top;overflow-wrap:anywhere;\">segundos inteiros; soma dos milissegundos do intervalo conclu\u00eddo, convertida em um inteiro de 32 bits, depois dividida por 1000 e arredondada com <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Math.Round<\/code>. Intervalos abertos s\u00e3o exclu\u00eddos.<\/td><\/tr>\n\n<\/tbody>\n<\/table><\/div>\n\n<p style=\"margin:0 0 22px;\">O ac\u00famulo de milissegundos utiliza uma convers\u00e3o de inteiro de 32 bits antes do arredondamento. Hist\u00f3ricos longos podem exceder esse intervalo. N\u00e3o trate isto como um contador de dura\u00e7\u00e3o de precis\u00e3o ilimitada ou como um hist\u00f3rico vital\u00edcio garantido entre reinicializa\u00e7\u00f5es. As capturas de estat\u00edsticas relatam <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">INTERNAL_ERROR<\/code>; a mensagem delas pode permanecer nula.<\/p>\n\n<h2 id=\"examples\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Exemplos<\/h2>\n\n<p style=\"margin:0 0 22px;\">Todas as requisi\u00e7\u00f5es e valores JSON nesta se\u00e7\u00e3o s\u00e3o ilustrativos. O host, os nomes e as refer\u00eancias de arquivos s\u00e3o espa\u00e7os reservados sem dados privados. As respostas s\u00e3o inv\u00f3lucros completos, a menos que descrito o contr\u00e1rio. A ordem das propriedades e os espa\u00e7os em branco do JSON podem diferir.<\/p>\n\n<p style=\"margin:0 0 22px;\">Verifique a disponibilidade a partir do computador do player quando a porta configurada for <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">8083<\/code>:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/ping\"\n<\/code><\/pre>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":null,\"result\":true,\"status\":0}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Liste as sequ\u00eancias em uma playlist dispon\u00edvel chamada <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Demo Show<\/code>:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/list_playlist_sequences\/Demo%20Show\"\n<\/code><\/pre>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":null,\"result\":[{\"filename\":\"demo.sequence\",\"is_on_top\":false,\"name\":\"Opening\"}],\"status\":0}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Inicie sua primeira sequ\u00eancia e, em seguida, consulte o estado. Estas s\u00e3o duas requisi\u00e7\u00f5es separadas:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/start_sequence\/Demo%20Show\/0\"\ncurl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/get_reproduction_state\"\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Resposta de comando ilustrativa:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":null,\"result\":true,\"status\":0}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Resposta de estado ilustrativa ap\u00f3s a transi\u00e7\u00e3o:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":null,\"result\":{\"is_playing\":true,\"is_paused\":false,\"is_render_active\":true,\"is_quickaction\":false,\"current_playlist\":\"Demo Show\",\"current_playlist_file\":\"demo.playlist\",\"current_sequence\":\"Opening\",\"current_sequence_index\":0,\"current_overlay_sequence_name\":\"\",\"current_overlay_sequence_file\":\"\",\"current_sequence_elapsed_time\":\"1000\",\"current_sequence_total_time\":\"300000\"},\"status\":0}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Um \u00edndice de sequ\u00eancia inv\u00e1lido em uma playlist existente:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/start_sequence\/Demo%20Show\/-1\"\n<\/code><\/pre>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":\"Sequence index must identify an existing sequence.\",\"result\":false,\"status\":5}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Uma consulta de playlist ausente:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":\"Playlist [Missing] not found.\",\"result\":[],\"status\":4}\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Inicie uma sobreposi\u00e7\u00e3o chamada <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">Demo Overlay<\/code> e, em seguida, remova-a:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/start_aot_sequence\/Demo%20Overlay\"\ncurl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/start_aot_sequence\/\"\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Defina o brilho global para 50 porcento:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/remoteplayer\/set_global_brightness\/50\"\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Abra, inspecione e feche um intervalo onTV e, em seguida, leia os totais:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">curl \"http:\/\/127.0.0.1:8083\/ws\/statsmeter\/start_on_tv_interval\"\ncurl \"http:\/\/127.0.0.1:8083\/ws\/statsmeter\/state_on_tv_interval\"\ncurl \"http:\/\/127.0.0.1:8083\/ws\/statsmeter\/stop_on_tv_interval\"\ncurl \"http:\/\/127.0.0.1:8083\/ws\/statsmeter\/get_mesures_statistics\"\n<\/code><\/pre>\n\n<p style=\"margin:0 0 22px;\">Resposta de estat\u00edsticas ilustrativa ap\u00f3s um intervalo conclu\u00eddo de cinco segundos:<\/p>\n\n<pre translate=\"no\" style=\"margin:24px 0 32px;padding:20px 24px;border:1px solid #d4e0e4;border-left:4px solid #328295;border-radius:6px;background:#f4f7f8;color:#243442;overflow-x:auto;font-size:0.9em;line-height:1.65;\"><code translate=\"no\" style=\"display:block;margin:0;padding:0;border:0;background:#f4f7f8;color:#243442;font-family:Consolas,Menlo,monospace;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;\">{\"message\":null,\"result\":{\"intervals_recorded\":1,\"total_seconds_in_tv\":5},\"status\":0}\n<\/code><\/pre>\n\n<h2 id=\"limitations\" style=\"margin:52px 0 20px;padding-bottom:12px;border-bottom:2px solid #d7e6e9;color:#173d4a;line-height:1.3;scroll-margin-top:24px;\">Limita\u00e7\u00f5es<\/h2>\n\n<p style=\"margin:0 0 22px;\">Deslocamentos de data, roteamento com curinga, corpos de erro HTTP e acesso espec\u00edfico \u00e0 implanta\u00e7\u00e3o exigem valida\u00e7\u00e3o na instala\u00e7\u00e3o de destino.<\/p>\n\n<p style=\"margin:0 0 22px;\">Nenhum limite de taxa (rate limit), isolamento de cliente, transa\u00e7\u00e3o de requisi\u00e7\u00e3o, garantia geral de idempot\u00eancia ou garantia de conclus\u00e3o audiovisual \u00e9 implementado por esta camada de API. Os comandos utilizam GET, portanto, a visualiza\u00e7\u00e3o pr\u00e9via de links (link previewing), o pr\u00e9-carregamento (prefetching), o cache e as tentativas autom\u00e1ticas (retries) podem ser inseguros para comandos. Utilize um cliente que envie requisi\u00e7\u00f5es apenas quando pretendido e que n\u00e3o reutilize respostas de consultas em cache. O c\u00f3digo do servidor n\u00e3o estabelece um contrato de controle de cache.<\/p>\n\n<p style=\"margin:0 0 22px;\">A interface HTML do onTV, os metadados WCF e os endpoints <code translate=\"no\" style=\"padding:2px 5px;border-radius:4px;background:#edf3f5;color:#294a58;font-size:0.9em;white-space:normal;overflow-wrap:anywhere;\">mex<\/code> s\u00e3o separados das opera\u00e7\u00f5es JSON documentadas aqui. Eles n\u00e3o s\u00e3o rotas adicionais de comandos do player. Nenhuma opera\u00e7\u00e3o de upload, edi\u00e7\u00e3o de playlist, download de arquivo, leitura de brilho (readback) ou assinatura de eventos \u00e9 declarada nestes dois contratos JSON.<\/p>\n\n<\/article>[\/fusion_builder_container]<\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_6 1_6 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:16.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:11.52%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:11.52%;--awb-width-medium:16.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:11.52%;--awb-spacing-left-medium:11.52%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20118","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.largedisplaysolutions.com\/pt-pt\/ldsperimetral-http-api-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"Large Display Solutions\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-12T10:28:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/documentacao-da-api-http-do-ldsperimetral\\\/\",\"url\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/ldsperimetral-http-api-documentation\\\/\",\"name\":\"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#website\"},\"datePublished\":\"2026-11-12T09:17:39+00:00\",\"dateModified\":\"2026-11-12T10:28:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/ldsperimetral-http-api-documentation\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.largedisplaysolutions.com\\\/ldsperimetral-http-api-documentation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/ldsperimetral-http-api-documentation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#website\",\"url\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/\",\"name\":\"Large Display Solutions\",\"description\":\"Software solutions for LED perimeter systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#organization\",\"name\":\"Large Display Solutions\",\"url\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/LogotipoLDS_128x40.png\",\"contentUrl\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/LogotipoLDS_128x40.png\",\"width\":128,\"height\":40,\"caption\":\"Large Display Solutions\"},\"image\":{\"@id\":\"https:\\\/\\\/www.largedisplaysolutions.com\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/ldsperimetral-http-api-documentation\/","og_locale":"pt_PT","og_type":"article","og_title":"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions","og_url":"https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/","og_site_name":"Large Display Solutions","article_modified_time":"2026-11-12T10:28:00+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/documentacao-da-api-http-do-ldsperimetral\/","url":"https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/","name":"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral - Large Display Solutions","isPartOf":{"@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#website"},"datePublished":"2026-11-12T09:17:39+00:00","dateModified":"2026-11-12T10:28:00+00:00","breadcrumb":{"@id":"https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.largedisplaysolutions.com\/ldsperimetral-http-api-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Documenta\u00e7\u00e3o da API HTTP do LDSperimetral"}]},{"@type":"WebSite","@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#website","url":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/","name":"Large Display Solutions","description":"Software solutions for LED perimeter systems","publisher":{"@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#organization","name":"Large Display Solutions","url":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.largedisplaysolutions.com\/wp-content\/uploads\/2021\/06\/LogotipoLDS_128x40.png","contentUrl":"https:\/\/www.largedisplaysolutions.com\/wp-content\/uploads\/2021\/06\/LogotipoLDS_128x40.png","width":128,"height":40,"caption":"Large Display Solutions"},"image":{"@id":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/pages\/20118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=20118"}],"version-history":[{"count":2,"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/pages\/20118\/revisions"}],"predecessor-version":[{"id":20139,"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/pages\/20118\/revisions\/20139"}],"wp:attachment":[{"href":"https:\/\/www.largedisplaysolutions.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=20118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}