ZOOM Gravando Video Treinamentos sem Complicações

Foi por um acaso que eu tive a grande ideia de utilizar o aplicativo para reuniões remotas ZOOM para gravar vídeo treinamentos para compartilhar conhecimento… um verdadeiro achado!

Há muito tempo eu já tinha vontade de gravar videos com este objetivo de compartilhar na internet, mas sempre me deparei com aplicativos para gravação muito complexos ou que exigiam muito esforço para uma finalidade tão simples.

Foi durante a pandemia de 2020 onde começamos a utilizar o ZOOM para reuniões remotas quando o Home Office se tornou uma realidade absoluta. O ZOOM ganhou espaço rapidamente por sua enorme simplicidade de operação o que ganhou minha simpatia imediata. Em um dado momento começamos a gravar algumas reuniões em grupo, mas de repente eu me perguntei… será???

Será que se eu abrir uma reunião só pra mim, eu comigo mesmo, e iniciar uma gravação isso irá funcionar? Fiquei de boca aberta quando o resultado foi sim!!! Um mundo de possibilidades se abriu na minha mente, então pensei… #agoravai

Bom o resto é história, estamos a mais de um ano gravando treinamentos com o ZOOM, já temos uma coleção de mais de vinte vídeos de treinamento e continua crescendo.

Abaixo os screenshots com dicas para você obter sucesso na empreitada de gravação de treinamentos.

Ingresse na reunião pressionando normalmente o botão para utilizar o audio do computador.

Inicie sua câmera para que sua imagem apareça já no início da gravação. Este passo não é obrigatório, se você preferir ministrar o treinamento com a câmera fechada tudo bem, a gravação irá funcionar normalmente.

Neste caso a sua foto registrada na plataforma do ZOOM aparecerá ao invés de sua imagem.

Ao pressionar o botão Record a gravação se iniciará imediatamente, assim eu particularmente recomendo que a locução do treinamento inicie-se imediatamente também…

Como dica fica a seguinte sugestão; inicie dizendo qual o objetivo do treinamento de forma sucinta e adicione a isso que você vai compartilhar sua tela para fazer a demonstração.

Enquanto você vai desenvolvendo a locução, ao mesmo tempo deve clicar no botão Share Screen. Até que a tela seja realmente compartilhada alguns passos serão necessários como escolher qual o monitor que será compartilhado entre outros. Você pode ainda compartilhar a tela inteira do monitor ou apenas uma porção desta tela.

A vantagem de usar apenas uma porção da tela é que, ao selecionar uma pequena área do monitor o conteúdo final ficará maior e mais visível, isto é particularmente interessante se você quiser que o vídeo seja legível no caso de você estar demonstrando um sistema ou mesmo códigos fontes.

Olha que legal, você sozinho desenvolvendo o treinamento. Não precisa de platéia para ministrar um treinamento certo? Poís é, mas se tiver platéia também vai funcionar.

Você pode usar o recurso de pausar a gravação, isto é particularmente útil se você tiver uma etapa muito demorada, tipo um download por exemplo. Além de não tornar o video sacal e entediante você ainda não vai desperdiçar o tempo de quem irá assistir o treinamento posteriormente.

Antes de finalizar, é recomendado que seja feito um fechamento do treinamento com os comentários pertinentes antes de se utilizar a opção Stop Recording. Diferentemente da opção Pause Recording que permite você retomar a gravação a qualquer momento, uma vez parada a gravação não há como retomar a mesma.

Para que o video final seja compilado e gravado no disco, será necessário encerrar a reunião… pressione o botão End Meeting e a compilação irá iniciar automaticamente.

Pronto, o seu video será gravado no disco rígido em alguma área com Downloads ou Desktop… não me recordo se isto é configurável ou não. Enfim, meus vídeos são gravados no formato .mp4

E antes que alguém me pergunte por que eu não gravei este artigo ao invés de escrever… bom a gravação somente seria realizada a partir do passo 5 em diante, assim achei melhor fazer o artigo inteiro no formato tradicional mesmo!

Agora sem desculpas para não gravar e compartilhar seus conhecimentos, ok?!… Zoom it!

PHP Array Combinando a Dupla Key Value como String

function getArgsAsString(array $args): string {
    return implode(', ', array_map(static function($v, $k){ return $k.'='.$v; }, $args, array_keys($args)));
}

Oxxê! Até o título deste artigo ficou estranho, mas primeiro vou explicar onde eu precisei usar isso pra ver se facilita o entendimento do porquê esse código pode ser útil pra você.

Quando escrevemos queries SQL em PHP é bastante comum fazermos o bind dos argumentos por nome associativo ao invés de posição. Essa técnica facilita não só a legibilidade do código como também ajuda a manter um código limpo e enxuto.

Pois bem, em um dado momento eu me recordo que precisei registrar um log da operação de SQL, daí além de registrar a string contendo a Query Statement, precisei também salvar os argumentos utilizados na operação. Foi neste momento que me dei conta de que o PHP não fornece uma solução nativa para este caso.

Rapidamente pensei nas funções nativas de parsing de Array do PHP, então o array_map caiu como uma luva. Lembrando que o array_map despreza os índices associativos do array original produzindo um novo array com índices sequenciais, mas como meu objetivo era produzir uma string com a combinação KEY=VALUE, eu não tive problemas com este fato.

Porém, é possível fazermos a mesma operação preservando os índices associativos originais do array, para isto basta usar a sintaxe abaixo com o comando array_walk.

array_walk($mapped_row, function(&$value, $key) {
    $value = sprintf('%s=%s', $value, $key);
}); 

$args_string = implode(', ', $args);

Lembrando que array_walk atua sobre o array original modificando o mesmo, diferentemente do array_map que produz um array completamente novo. Se você tiver problemas em modificar o seu array original crie então uma função passando o array como parâmetro.

Diferentemente de Objetos, os Arrays não são passados por referência por default, assim uma nova array será criada antes do parsing do array_walk, o que irá preservar o array original intacto.

function getArgsAsString(array $args): string {
    array_walk($args, function(&$value, $key) {
        $value = sprintf('%s=%s', $value, $key);
    });
    
    return implode(', ', $args);
}

Bom, fora este detalhe você pode ficar a vontade para utilizar a sintaxe que preferir… aproveite!