Aula 107: Integrando AVKit e Reproduzindo Mídia
Nesta aula, vamos explorar como integrar o AVKit em suas aplicações iOS para lidar com a reprodução de mídia de forma eficiente. O AVKit é um framework de alto nível que simplifica a reprodução de vídeo, fornecendo uma interface de player que pode ser facilmente utilizada em suas aplicações.
Começando
Primeiro, certifique-se de importar os frameworks necessários:
import UIKit
import AVKit
import AVFoundation
Configurando o AVPlayerViewController
AVPlayerViewController
é o controlador de visualização principal que usaremos para apresentar nosso conteúdo de vídeo. Ele vem com controles integrados para reproduzir, pausar e buscar.
Reprodução Básica de Vídeo
Aqui está um exemplo simples de como configurar a reprodução de vídeo a partir de uma URL:
class VideoPlayerViewController: UIViewController {
var playerViewController: AVPlayerViewController!
var player: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
// Inicializa o AVPlayer com uma URL
guard let videoURL = URL(string: "https://www.exemplo.com/video.mp4") else { return }
player = AVPlayer(url: videoURL)
// Inicializa o AVPlayerViewController com o player
playerViewController = AVPlayerViewController()
playerViewController.player = player
// Apresenta o player como um filho do controlador de visualização atual
present(playerViewController, animated: true) {
self.playerViewController.player?.play()
}
}
}
Apresentando o Player de Vídeo
No exemplo acima, instanciamos o AVPlayer
com uma URL de vídeo e atribuimos ao AVPlayerViewController
. Quando a visualização é carregada, apresentamos o player e iniciamos a reprodução automaticamente.
Personalizando o Player
Você pode querer personalizar os recursos de reprodução, como ajustar a velocidade de reprodução ou adicionar ouvintes para notificações.
Modificando a Velocidade de Reprodução
Você pode facilmente mudar a velocidade de reprodução usando a propriedade rate
do AVPlayer
.
player.rate = 1.5 // Velocidade 1.5x
Observando o Estado da Reprodução
É útil observar o tempo atual do player ou a conclusão da busca:
override func viewDidLoad() {
super.viewDidLoad()
// ... código de configuração anterior
// Observe o tempo atual do player
player.addObserver(self, forKeyPath: "currentItem", options: [.old, .new], context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "currentItem" {
// Lida com a mudança do item atual do player
print("Item Atual Mudou")
}
}
deinit {
player.removeObserver(self, forKeyPath: "currentItem")
}
Lidando com a Reprodução de Áudio
Para aplicações que exigem reprodução de áudio, o AVKit também pode ser usado para esse propósito, mas é importante considerar as capacidades de reprodução de áudio em segundo plano.
Habilitando Áudio em Segundo Plano
Para continuar a reprodução de áudio quando sua aplicação está em segundo plano, você precisa configurar as definições do aplicativo adequadamente:
- Abra as configurações do seu projeto.
- Selecione seu alvo do aplicativo e vá para a aba Capacidades.
- Habilite Modos em Segundo Plano e marque Áudio, AirPlay e Picture in Picture.
Exemplo de Reprodução de Áudio
class AudioPlayerViewController: UIViewController {
var audioPlayer: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
guard let audioURL = URL(string: "https://www.exemplo.com/audio.mp3") else { return }
audioPlayer = AVPlayer(url: audioURL)
let playButton = UIButton(type: .system)
playButton.setTitle("Reproduzir Áudio", for: .normal)
playButton.addTarget(self, action: #selector(playAudio), for: .touchUpInside)
view.addSubview(playButton)
playButton.center = view.center
}
@objc func playAudio() {
audioPlayer.play()
}
}
Conclusão
Nesta aula, cobrimos como integrar o AVKit para reprodução de mídia em suas aplicações iOS. Exploramos os princípios básicos da reprodução de vídeo usando o AVPlayerViewController
, como personalizar as configurações de reprodução e gerenciar a reprodução de áudio de forma eficaz. Com essas ferramentas em seu arsenal, você está preparado para lidar com a reprodução de mídia suavemente em seus aplicativos.