Player de Vídeos com AVKit
Estava fazendo um projeto para o playgrounds do Xcode e precisava de uma "animação" após a passagem entre views, porém, como já possuía alguns vídeos prontos que simulavam tal animação, fui em busca de como poderia usá-los para fazer uma famosa "gambiarra". Foi então que me veio a ideia de utilizar o player do AVKit para passar o vídeo logo que a view fosse carregada. Durante as minhas pesquisas, me deparei com muitas dúvidas sobre como fazer um player com vários vídeos, onde fosse possível navegar entre os vídeos. A partir daí decidi fazer esse tutorial.
Comecei a programar em Swift há poucos meses, então pode ser que o código que compartilharei aqui não seja o mais otimizado possível, mas atende bem à proposta.
Bem, chega de ladainha e vamos ao que interessa.
Passo 1:
A primeira coisa que precisamos fazer é importar o AVKit para termos acesso às suas funções.
Passo 2:
Agora vamos criar a playlist dos vídeos que irão ser reproduzidos no seu player. Para isso, devemos primeiro criar um array de videos (AVPlayerItem’s).
Passo 3:
Você deverá adicionar todos os vídeos na pasta "Resources" do seu playground.
Passo 4:
Agora que os vídeos estão adicionados, vamos colocá-los no array que criamos. (Repita os passos abaixo para todos os seus vídeos).
Passo 5:
A seguir deveremos criar o AVPlayer (onde seu vídeos serão reproduzidos) e uma AVPlayerLayer (permitirá que você edite a aparência do seu player). Para isso vamos precisar, inicialmente, criar as variáveis para ambos. Além disso iremos criar uma variável que guardará o índice do vídeo que estará sendo reproduzido.
Passo 6:
Agora vamos preparar o player para ser exibido em sua view (o código abaixo deve estar após o código do "Passo 4").
O seu player está pronto para rodar, mas antes precisamos criar uma view e alguns botões que nos permitirão interagir com o player.
Passo 7:
Criar a view e os botões. Como o foco principal aqui é mostrar as funções do AVKit para a criação do player, então fiz uma interface bem simples para a explicação.
Note que no código acima eu usei a função addTarget(), elas chamarão a IBAction com as ações que serão realizadas após clicar em cada botão.
Passo 8:
Adicionar os botões e o AVPlayerLayer à view (geralmente coloco o código abaixo logo antes de fechar as chaves da função loadView(), por questão de organização e estética do código mesmo).
Passo 9:
Pronto, agora só falta criarmos a IBAction com as ações dos botões! Note que no "Passo 7" todos os botões têm a mesma IBAction como alvo, a "videoPlayer(sender:)", então vamos criá-la.
O código abaixo deve ser colocado dentro da sua ViewController, mas fora da função loadView().
Passo 10:
Prontinho!! Agora é só rodar o seu player de vídeos.
Espero que esse tutorial tenha ajudado, o código completo você pode ver aqui.