Pergunta

eu tenho um AVMutableComposition Com uma faixa de vídeo e eu gostaria de adicionar uma imagem estática na faixa de vídeo, a ser exibida por algum tempo. A imagem estática é simplesmente um PNG. Eu posso carregar a imagem como um ativo, mas é isso, porque o ativo resultante não tem nenhuma faixa e, portanto, não pode ser simplesmente inserido usando o insertTimeRange… métodos.

Existe uma maneira de adicionar imagens estáticas a uma composição? Parece que a resposta está em algum lugar na animação central, mas a coisa toda parece estar um pouco acima da minha cabeça e eu apreciaria uma amostra de código ou algumas indicações de informação.

Foi útil?

Solução

OK. Há um ótimo vídeo chamado Editando mídia com AV Foundation a partir de WWDC Isso explica muito. Você não pode inserir imagens diretamente para o AVComposition Linha do tempo, pelo menos eu não encontrei nenhuma maneira de fazer isso. Mas ao exportar ou jogar um ativo, você pode se referir a um AVVideoComposition. Talvez não seja um nome perfeito para a classe, pois permite que você misture entre várias faixas de vídeo no ativo, muito parecido AVAudioMix faz para áudio. E a AVVideoComposition tem um animationTool Propriedade que permite lançar camadas principais de animação (CALayer) na mistura. CALayer tem um contents propriedade que pode ser atribuída um CGImageRef. Não ajuda no meu caso, pode ajudar outra pessoa.

Outras dicas

Eu também preciso de imagens paradas na minha composição. Minha linha de pensamento é um pouco diferente. Insira os filmes de preto no lugar de quando as imagens devem aparecer (possivelmente um desses vídeos seria suficiente). Adicione uma referência de dicionário a cada uma dessas inserções, vinculando faixas de tempo de composição às imagens desejadas de boa-fé. Quando o intervalo de tempo correto chegar ao meu compositor personalizado em tempo integral, retire a imagem desejada e pinte isso no buffer de pixel de saída, ignorando os quadros pretos que chegam da composição. Eu acho que seria outra maneira de fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top