android-youtube-player, une alternative open source à l'API officielle du lecteur YouTube

une brève introduction à l'API android-youtube-player et la raison pour laquelle vous pouvez l'utiliser pour remplacer l'API officielle du lecteur Android de YouTube

Vous construisez votre nouvelle application Android et vous souhaitez permettre à vos utilisateurs de visionner des vidéos YouTube. La première chose à laquelle vous pouvez penser est d’utiliser l’API officielle du lecteur Android de YouTube. Ce n'est pas forcément le meilleur choix. Avec cet article, je vais vous présenter un autre lecteur YouTube open source que j'ai construit (android-youtube-player), en expliquant certains des avantages que vous pouvez obtenir en l’utilisant à la place du lecteur officiel.

Pourquoi devriez-vous envisager de ne pas utiliser la bibliothèque officielle de YouTube?

Si vous êtes préoccupé par la stabilité

À partir d'aujourd'hui (25/12/2017), l'API officielle du joueur n'est pas géniale. Vous allez probablement aller bien si vous devez utiliser le
YouTubeBaseActivity / YouTubeStandalonePlayer, mais vous allez rencontrer des problèmes avec le YouTubePlayerFragment.

La bibliothèque a de très vieux bugs, celui-ci est le plus important que j'ai rencontré. Tout en développant mon application, j'ai continué à la rencontrer, voyant mon application planter au hasard, apparemment sans raison. Cela a rendu mon application instable et jamais prête pour la production.
Le virus est toujours là, à ma connaissance. Une nouvelle version de la bibliothèque devrait être en préparation, mais elle n'a pas encore été publiée.

Si vous ne souhaitez pas être associé à Google Play et à l'application YouTube

Pour fonctionner, l’API officielle du lecteur nécessite que le périphérique de l’utilisateur soit doté de Google Play et de l’application YouTube.

C’est une limitation que l’API android-youtube-player n’a pas.

Si vous voulez plus de contrôle sur l'apparence et le comportement du joueur

L'API officielle du lecteur n'est pas une source ouverte. Par conséquent, la personnalisation que vous pouvez effectuer va aussi loin que l'API le permet. Malheureusement, cela signifie: pas très loin.

Vous souhaitez peut-être modifier l'interface utilisateur du lecteur ou écrire un comportement personnalisé spécifique à votre cas d'utilisation. Ce n'est pas possible avec le joueur officiel.

Si vous ne souhaitez pas enregistrer votre application dans la console Google Developers

… C’est un peu paresseux, mais l’API android-youtube-player ne vous oblige pas à le faire.

Entre toutes ces questions, la plus grande préoccupation que j'avais était liée à la stabilité de la bibliothèque. Un jour, Google publiera probablement une nouvelle version qui résoudra le problème, mais cela n’a pas encore été fait (depuis 2013: |). Si, comme moi, vous devez publier votre application, vous avez probablement besoin d'une solution plus immédiate.

L'alternative: API android-youtube-player

L'API android-youtube-player fournit une vue simple pouvant être facilement intégrée à chaque activité et fragment.

Sous le capot, la bibliothèque interagit avec YouTube via l'API d'IFrame Player, qui s'exécute dans une vue Web.

Si vous souhaitez utiliser l'interface utilisateur Web du lecteur Web, vous pouvez le faire. Mais vous pouvez également utiliser l'interface utilisateur native personnalisable fournie par la bibliothèque. Vous pouvez même créer votre propre interface utilisateur à partir de rien.

Étant donné que l'API utilise l'API officielle d'IFrame Player pour accéder à YouTube, les violations des conditions de service ne posent aucun problème.

Facilité d'utilisation

android-youtube-player n’exige pas que ses utilisateurs étendent des activités ou des fragments gênants, il s’agit simplement d’une vue. Vous pouvez le déposer où vous voulez.

Interface utilisateur personnalisable

android-youtube-player donne beaucoup de liberté en termes de personnalisation de l'interface utilisateur. Si vous le souhaitez, vous pouvez remplacer complètement l'interface utilisateur du lecteur par la vôtre.

Ou vous pouvez facilement ajouter / supprimer des vues de l'interface utilisateur par défaut.

Support Chromecast

À partir de la version 8, l'API android-youtube-player peut également être utilisé pour diffuser des vidéos d'une application Android sur un appareil Google Cast.

Démarrage rapide - utilisez la bibliothèque avec seulement quelques lignes de code

Je vais maintenant montrer un exemple simple montrant comment utiliser la bibliothèque avec quelques lignes de code.

Le code source de quelques autres exemples est disponible ici, dans l'exemple d'application. Vous pouvez également télécharger l'exemple d'application apk et l'essayer sur votre téléphone.

Premiers pas

Pour utiliser l'API, commencez par importer la dépendance de la bibliothèque, en ajoutant cette ligne à votre build.gradle au niveau du module.

(remplacez «last_version» par le dernier numéro de version de la bibliothèque. Vous trouverez les versions publiées ici)

Pour commencer à utiliser le lecteur, vous devez ajouter un YouTubePlayerView à votre mise en page. Vous pouvez également le créer par programme, si vous préférez.

Dans votre activité / fragment, obtenez une référence à YouTubePlayerView dans votre code et ajoutez-la en tant qu’observateur du cycle de vie de son parent.

Vous devez utiliser androidx au lieu des anciennes bibliothèques de support, sinon vous pourriez rencontrer des problèmes de compatibilité à cette étape.

Tout ce dont vous avez besoin pour commencer à lire des vidéos YouTube dans votre application.

Si vous souhaitez plus de contrôle, vous pouvez tout faire par programme en obtenant une référence à votre YouTubePlayerView et en y ajoutant un YouTubePlayerListener.

Il n’existe pas de moyen plus simple de lire des vidéos YouTube sur Android.

Prochaines étapes

  1. Visitez la page d'accueil du projet.
  2. Lisez la documentation de l'API.
  3. Laissez une étoile sur GitHub :)

Où pouvez-vous me trouver?

Suivez-moi sur Twitter: https://twitter.com/psoffritti
Mon site / portfolio: pierfrancescosoffritti.com
Mon compte GitHub: https://github.com/PierfrancescoSoffritti
Mon compte LinkedIn: linkedin.com/in/pierfrancescosoffritti/fr