SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
22.11.2024

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:

  1. Abra as configurações do seu projeto.
  2. Selecione seu alvo do aplicativo e vá para a aba Capacidades.
  3. 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.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!