feat: aprimorado o preview de falantes na tela Refinar para reprod
- aprimorado o preview de falantes na tela Refinar para reproduzir os trechos do vídeo - corrigida a leitura dos timestamps do preview de falantes usando os clipes do banco - alterado o preview de falantes para reproduzir diretamente na timeline ativa do Premiere - evitadas reinicializações concorrentes durante o monitoramento do preview na timeline - substituído o polling contínuo por temporização de cada trecho do preview - restaurado o preview de áudio dos falantes usando o WAV da transcrição - corrigida a localização do WAV de transcrição ao carregar análises existentes - atualizado o cabeçalho do painel CEP para Jhonny Marrone com ícone de lâmpada mágica Resumo: - 4 arquivos alterados - 0 novos - 4 modificados - 0 removidos 4 files changed, 39 insertions(+), 5 deletions(-) Arquivos: - .jhonny/analises.db - code/cep-plugin/index.html - code/cep-plugin/main.js - code/cep-plugin/styles.css
This commit is contained in:
@@ -10,9 +10,15 @@
|
||||
<div class="panel-shell">
|
||||
|
||||
<header class="panel-header">
|
||||
<div class="brand-mark" aria-hidden="true"><span>M</span></div>
|
||||
<div class="brand-mark" aria-hidden="true">
|
||||
<svg viewBox="0 0 24 24" role="img" aria-label="Lâmpada mágica">
|
||||
<path d="M8.1 14.2c-1.1-1-1.8-2.4-1.8-4.1 0-3.1 2.5-5.6 5.7-5.6s5.7 2.5 5.7 5.6c0 1.7-.7 3.1-1.8 4.1-.8.8-1.2 1.4-1.3 2.3H9.4c-.1-.9-.5-1.5-1.3-2.3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
||||
<path d="M9.6 19h4.8M10.5 21h3M4.2 5.8l-1.3-1.3M19.8 5.8l1.3-1.3M12 2.5V1M4.2 10.1H2.5M21.5 10.1h-1.7" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
||||
<path d="m12 7.1.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6.6-1.7Z" fill="currentColor" stroke="none"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="brand-copy">
|
||||
<h1>MCP for Adobe Premiere Pro</h1>
|
||||
<h1>Jhonny Marrone</h1>
|
||||
<p>Conexão local com o Premiere</p>
|
||||
</div>
|
||||
<div class="header-status" id="headerStatus" data-state="waiting" title="Status da conexão">
|
||||
|
||||
+30
-3
@@ -2246,8 +2246,28 @@ function silenceConsultarPreviewDeFalantes(videoId) {
|
||||
} catch (_) { return null; }
|
||||
}
|
||||
|
||||
function silenceLocalizarAudioParaFalantes(pasta) {
|
||||
function silenceLocalizarAudioParaFalantes(pasta, dadosDoRelatorio) {
|
||||
var encontrados = [];
|
||||
var nomesDeMidia = [];
|
||||
|
||||
function adicionarNomeDeMidia(nome) {
|
||||
if (!nome) return;
|
||||
var base = path.parse(String(nome)).name;
|
||||
if (base && nomesDeMidia.indexOf(base) < 0) nomesDeMidia.push(base);
|
||||
}
|
||||
|
||||
adicionarNomeDeMidia(silenceState.mediaPath);
|
||||
var artefatosDeAudio = dadosDoRelatorio && dadosDoRelatorio.artefatos && dadosDoRelatorio.artefatos.audio || [];
|
||||
artefatosDeAudio.forEach(function (nomeDoArtefato) {
|
||||
try {
|
||||
var caminhoDoArtefato = path.join(pasta, nomeDoArtefato);
|
||||
var dadosDoAudio = JSON.parse(fs.readFileSync(caminhoDoArtefato, "utf-8"));
|
||||
(dadosDoAudio.faixa && dadosDoAudio.faixa.clipes || []).forEach(function (clipe) {
|
||||
adicionarNomeDeMidia(clipe.nome || clipe.arquivo || clipe.sourceFile);
|
||||
});
|
||||
} catch (_) {}
|
||||
});
|
||||
|
||||
function visitar(caminho) {
|
||||
if (encontrados.length) return;
|
||||
try {
|
||||
@@ -2261,7 +2281,14 @@ function silenceLocalizarAudioParaFalantes(pasta) {
|
||||
} catch (_) {}
|
||||
}
|
||||
visitar(pasta);
|
||||
return encontrados[0] || null;
|
||||
if (encontrados.length) return encontrados[0];
|
||||
|
||||
for (var indice = 0; indice < nomesDeMidia.length; indice++) {
|
||||
var pastaDaTranscricao = path.join(SILENCE_OUTPUT_ROOT, nomesDeMidia[indice]);
|
||||
var caminhoDoAudio = path.join(pastaDaTranscricao, nomesDeMidia[indice] + ".wav");
|
||||
if (fs.existsSync(caminhoDoAudio)) return caminhoDoAudio;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function silenceLocalizarMidiaNoRelatorio(caminhoDoRelatorio, dadosDoRelatorio) {
|
||||
@@ -2300,7 +2327,7 @@ function silenceLoadScannerAnalysis() {
|
||||
silenceState.mediaPath = silenceLocalizarMidiaNoRelatorio(caminhoDoRelatorio, dadosDoRelatorio);
|
||||
silenceState.fileBaseName = path.basename(path.dirname(caminhoDoRelatorio));
|
||||
silenceState.outputDir = path.dirname(caminhoDoRelatorio);
|
||||
silenceState.audioCachePath = silenceLocalizarAudioParaFalantes(silenceState.outputDir);
|
||||
silenceState.audioCachePath = silenceLocalizarAudioParaFalantes(silenceState.outputDir, dadosDoRelatorio);
|
||||
silenceState.transcriptPath = path.join(silenceState.outputDir, "transcricao-do-scanner.json");
|
||||
silenceState.cachedTranscriptPath = null;
|
||||
silenceState.tipoVideoId = null;
|
||||
|
||||
@@ -81,6 +81,7 @@ h1, h2, h3 { margin: 0; }
|
||||
font-weight: 750;
|
||||
letter-spacing: -0.04em;
|
||||
}
|
||||
.brand-mark svg { width: 21px; height: 21px; }
|
||||
|
||||
.brand-copy { min-width: 0; flex: 1; }
|
||||
.brand-copy h1 { overflow: hidden; font-size: 12px; line-height: 1.25; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
|
||||
|
||||
Reference in New Issue
Block a user