
[ad_1]
Plugin Flutter pour lire ou diffuser des vidéos YouTube en ligne à l’aide de l’officiel API du lecteur iFrame.
Plates-formes prises en charge :
- Android
- iOS
Pour l’assistance Web, utilisez youtube_player_iframe. À l’avenir, ce package étendra youtube_player_iframe.
Principales caractéristiques
- Lecture en ligne
- Prend en charge les sous-titres
- Pas besoin de clé API
- Prend en charge les contrôles personnalisés
- Récupère les métadonnées vidéo
- Prend en charge les vidéos en direct
- Prend en charge la modification du taux de lecture
- Prise en charge d’Android et d’iOS
- S’adapte à la qualité selon la bande passante
- Avance et retour rapides sur glissement horizontal
- Adapter les vidéos aux écrans larges avec des gestes de pincement
Le plugin utilise flutter_inappwebview sous la capuche.
Depuis flutter_inappwebview s’appuie sur le mécanisme de Flutter pour intégrer les vues Android et iOS, ce plugin peut partager certains problèmes connus marqués avec le plates-formes-vues étiquette.
Conditions
- Android:
minSdkVersion 17
et ajouter un support pourandroidx
(voir Migration AndroidX) - iOS :
--ios-language swift
version Xcode>= 11
Installer
iOS
Aucune configuration requise
Pour plus d’informations, vois ici
Android
Régler minSdkVersion
de votre android/app/build.gradle
fichier à au moins 17.
Pour plus d’informations, vois ici
Noter: Bien que le minimum à définir soit 17, le lecteur ne jouera pas sur un appareil avec une API < 20 (19 si la composition hybride est activée). Pour les appareils API < 20, vous souhaiterez peut-être transférer la vidéo à lire à l'aide de l'application YouTube à la place, en utilisant des packages tels que url_launcher
ou android_intent
.
Utilisation du lecteur Youtube
YoutubePlayerController _controller = YoutubePlayerController(
initialVideoId: 'iLnmTe5Q2Qw',
flags: YoutubePlayerFlags(
autoPlay: true,
mute: true,
),
);
YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
videoProgressIndicatorColor: Colors.amber,
progressColors: ProgressColors(
playedColor: Colors.amber,
handleColor: Colors.amberAccent,
),
onReady () {
_controller.addListener(listener);
},
),
Pour la prise en charge plein écran
Si la prise en charge du plein écran est requise, enveloppez votre lecteur avec YoutubePlayerBuilder
YoutubePlayerBuilder(
player: YoutubePlayer(
controller: _controller,
),
builder: (context, player){
return Column(
children: [
// some widgets
player,
//some other widgets
],
);
),
),
Lecture de vidéos en direct
Définissez la propriété isLive sur true afin de modifier l’interface utilisateur pour qu’elle corresponde à la vidéo en direct.
YoutubePlayerController _controller = YoutubePlayerController(
initialVideoId: 'iLnmTe5Q2Qw',
flags: YoutubePLayerFlags(
isLive: true,
),
);
YoutubePlayer(
controller: _controller,
liveUIColor: Colors.amber,
),
Vous voulez personnaliser le lecteur ?
Avec v5.xx et plus, utilisez le topActions
et bottomActions
propriétés pour personnaliser le lecteur.
Certains des widgets fournis avec le plugin sont :
- Bouton Plein écran
- Durée restante
- Position actuelle
- PlayPauseButton
- Bouton de vitesse de lecture
- Barre de progression
YoutubePlayer(
controller: _controller,
bottomActions: [
CurrentPosition(),
ProgressBar(isExpanded: true),
TotalDuration(),
],
),
Vous voulez jouer en utilisant les URL Youtube ?
Le plugin fournit également convertUrlToId()
méthode qui convertit les liens youtube en ses identifiants vidéo correspondants.
String videoId;
videoId = YoutubePlayer.convertUrlToId("https://www.youtube.com/watch?v=BBAyRBTfsOU");
print(videoId); // BBAyRBTfsOU
Exemple
Liens rapides
Télécharger
Téléchargez les APK ci-dessus (dans le badge) et essayez le plugin. Les APK sont disponibles sur la page de publication Assets of Github.
Limitation
Étant donné que le plugin est basé sur des vues de plate-forme. Ce plugin nécessite le niveau 20 ou supérieur de l’API Android.
Licence
Copyright 2021 Sarbagya Dhaubanjar. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
GitHub
Voir Github
[ad_2]