Integrazione dei player in SwiftUI
Usi VideoPlayer e view player personalizzate.
Integrazione dei player in SwiftUI è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.
Video in SwiftUI
SwiftUI fornisce la vista VideoPlayer (da AVKit) per integrare la riproduzione multimediale in modo dichiarativo, con controlli integrati.
import SwiftUI
import AVKitLa vista VideoPlayer
VideoPlayer accetta un AVPlayer ed esegue il rendering con i controlli standard della riproduzione: riproduzione, pausa, barra di scorrimento e schermo intero.
struct PlayerScreen: View {
let player = AVPlayer(url: URL(string: "https://example.com/v.mp4")!)
var body: some View {
VideoPlayer(player: player)
.frame(height: 240)
}
}Mantenere il player nello stato
Conservare AVPlayer in @State affinché sopravviva agli aggiornamenti della vista. Ricrearlo a ogni chiamata di body farebbe ricominciare la riproduzione.
struct PlayerScreen: View {
@State private var player = AVPlayer(
url: URL(string: "https://example.com/v.mp4")!)
var body: some View {
VideoPlayer(player: player)
}
}Controllare la riproduzione
Gestire la riproduzione dai modificatori del ciclo di vita di SwiftUI: avviarla quando la vista appare e metterla in pausa quando scompare, per evitare che l'audio continui fuori dallo schermo.
VideoPlayer(player: player)
.onAppear { player.play() }
.onDisappear { player.pause() }Contenuto in sovrapposizione
L'inizializzatore di VideoPlayer accetta una closure di sovrapposizione per inserire un'interfaccia personalizzata sopra il video, ad esempio titoli, badge e didascalie.
VideoPlayer(player: player) {
VStack {
Spacer()
Text("Live")
.padding(6)
.background(.red, in: Capsule())
}
}Riproduzione in loop
Ripetere la riproduzione osservando la notifica di fine dell'elemento e tornando a zero con un posizionamento. Un AVPlayerLooper con un player in coda è un'altra opzione.
.onAppear {
NotificationCenter.default.addObserver(
forName: .AVPlayerItemDidPlayToEndTime,
object: player.currentItem, queue: .main) { _ in
player.seek(to: .zero); player.play()
}
}Sessione audio per i video
Configurare un AVAudioSession affinché l'audio del video si comporti correttamente, rispettando l'interruttore silenzioso o riproducendo l'audio anche quando è attivo, secondo necessità.
try? AVAudioSession.sharedInstance().setCategory(.playback)Player personalizzati con UIViewRepresentable
Quando serve un'interfaccia completamente personalizzata, senza controlli di sistema, racchiudere un AVPlayerLayer in un UIViewRepresentable invece di utilizzare VideoPlayer.
struct PlayerLayerView: UIViewRepresentable {
let player: AVPlayer
func makeUIView(context: Context) -> UIView { PlayerUIView(player: player) }
func updateUIView(_ uiView: UIView, context: Context) { }
}La UIView di supporto
La UIView personalizzata ospita un AVPlayerLayer e lo ridimensiona in base ai propri limiti, offrendo una superficie video priva di controlli.
final class PlayerUIView: UIView {
init(player: AVPlayer) {
super.init(frame: .zero)
let layer = AVPlayerLayer(player: player)
layer.videoGravity = .resizeAspectFill
self.layer.addSublayer(layer)
}
required init?(coder: NSCoder) { fatalError() }
}Picture in Picture
Per Picture in Picture, utilizzare AVPictureInPictureController con il livello del player e abilitare la funzionalità audio in background.
let pip = AVPictureInPictureController(playerLayer: playerLayer)
pip?.startPictureInPicture()Pulizia
Metta in pausa il player e rimuova gli observer quando la view scompare, per liberare risorse e interrompere l'audio in background che non desidera mantenere.
.onDisappear {
player.pause()
// remove notification observers here
}Verifica rapida: player SwiftUI
Verifichi di aver compreso come integrare i player in SwiftUI.
Riepilogo: integrazione dei player in SwiftUI
Il VideoPlayer di AVKit integra un AVPlayer con controlli standard; mantenga il player in @State per avere un'istanza stabile e gestisca la riproduzione e la pausa da onAppear/onDisappear. Aggiunga overlay tramite la trailing closure e ripeta la riproduzione alla notifica di fine.
Per una riproduzione personalizzata senza controlli, racchiuda un AVPlayerLayer in una UIViewRepresentable e rimuova gli observer quando la view scompare.
Impara Swift con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 122
- Lezioni
- 409
Domande Frequenti
La lezione «Integrazione dei player in SwiftUI» è gratuita?
Sì — il testo completo di «Integrazione dei player in SwiftUI» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.
Cosa imparerò in «Integrazione dei player in SwiftUI»?
Usi VideoPlayer e view player personalizzate. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Swift Academy?
Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Integrazione dei player in SwiftUI»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Swift Academy?
Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Riproduzione multimediale con AVPlayer
- Registrazione audio
- AVAsset e composizione
- Integrazione dei player in SwiftUI