Qu'il s'agisse d'une image amusante, d'une vidéo informative ou d'un clip audio captivant, Le fait de permettre aux utilisateurs de partager du contenu enrichit leur expérience et favorise et l'engagement. Ce document explore les principes de base du partage de contenu multimédia sur Android, y compris les API et les techniques dont vous avez besoin pour intégrer cette fonctionnalité.
Conçu pour le partage
La conception d'Android favorise l'interopérabilité entre les applications à l'aide d'un système basé sur Intents : Un intent est une description abstraite d'une opération à effectuer. Les intents permettent aux applis de communiquer entre elles sans avoir à se connaître leurs spécificités les uns pour les autres.
Lorsqu'une application souhaite partager des données ou initier une action, elle crée un intent qui spécifie le type de contenu et d'opération. Le système Android présente une liste d'applications pertinentes capables de gérer cet intent, permettant à l'utilisateur de choisir l'application à utiliser. Cette approche favorise un écosystème collaboratif.
Le partage de texte ne nécessite que quelques lignes de code:
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "This is my text to share.")
type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)
La ligne createChooser
affiche l'interface utilisateur Android Sharesheet, qui
permet aux utilisateurs de partager des informations, y compris des suggestions d'applications pertinentes,
en un seul geste. Autres fonctionnalités d'Android Sharesheet:
- Découvrez à quel moment vos utilisateurs effectuent un partage et où
- Fournir des aperçus de contenu enrichi à partir d'Android 10 (niveau d'API 29)
Pour en savoir plus sur Android, consultez Envoyer des données simples à d'autres applications. Sharesheet et comment les utiliser.
Fournissez des cibles de partage direct pour permettre aux utilisateurs de d'autres applications pour partager des URL, des images ou d'autres types de données avec votre application. Accès directs Partager fonctionne en présentant directement vos contacts depuis des applications de messagerie et de réseaux sociaux sur Android Sharesheet, sans que les utilisateurs n'aient à sélectionner l'application et recherchez le contact.
Ils permettent de recevoir du contenu enrichi par le biais d'une
OnReceiveContentListener
Cette API fournit un emplacement unique
du code pour gérer la réception de tout le contenu, du texte brut et stylisé au balisage,
des images, des vidéos, des fichiers audio, etc. Il peut s'agir d'images
claviers, glisser-déposer ou le presse-papiers.
Partager des fichiers multimédias
Les intents ne peuvent contenir qu'une petite quantité de données. Android permet donc Intents contenant un identifiant sécurisé pour les fichiers Partager des fichiers multimédias en toute sécurité depuis votre application implique:
- Configurez votre application pour qu'elle propose un gestionnaire sécurisé du fichier (sous la forme d'un URI de contenu) à l'aide du composant
FileProvider
d'Android. - Spécifiez les répertoires partageables dans votre fichier manifeste.
- Utilisez
getUriForFile
pour créer une URL de contenu sécurisée dans le fichier. - Créez un intent qui accorde des autorisations sur le fichier.
Consultez À propos du partage de fichiers pour découvrir comment partager de façon sécurisée .
Optimiser les contenus multimédias pour le partage
Que vous partagiez des contenus multimédias avec d'autres utilisateurs dans votre application ou avec une autre application, vous devez vous assurer de partager des contenus multimédias qui offrent une expérience de partage de haute qualité.
Trouver l'équilibre entre qualité et taille
Les fichiers multimédias volumineux peuvent rapidement utiliser la bande passante et l'espace de stockage, les retards frustrants et les éventuels frais de dépassement de données pour vos utilisateurs. La compression est la meilleure arme.
- Compression d'image : utilisez des formats de compression d'image modernes tels que WebP et AVIF, qui offrent des taux de compression supérieurs aux JPEG traditionnels sans perte de qualité significative. Tester différentes qualités paramètres pour trouver le juste équilibre.
- Compression vidéo: exploitez les performances des vidéos AV1 ou H.265 (HEVC).
pour améliorer l'efficacité de la compression tout en maintenant
d'une excellente qualité visuelle. Vous pouvez vérifier la présence d'encodage matériel
sur les appareils Android 10 et versions ultérieures, ainsi que le
mediaPerformanceClass
pour vous aider déterminer ce que votre appareil peut le mieux prendre en charge. Envisagez de proposer différentes options de résolution pour répondre aux préférences et aux conditions réseau des utilisateurs.
fun hasHardwareEncodingSupportFor(mimeType: String): Boolean {
val codecList = MediaCodecList(REGULAR_CODECS)
val codecInfos = codecList.codecInfos
for ( codecInfo in codecInfos ) {
if (!codecInfo.isEncoder()) {
continue;
}
if (!codecInfo.isHardwareAccelerated()) {
continue;
}
val types: Array<String> = codecInfo.getSupportedTypes()
for (j in types.indices) {
if (types[j].equals(mimeType, ignoreCase = true)) {
return true
}
}
}
return false
}
// test for AV1 hardware encoding support
val hasAV1 = hasHardwareEncodingSupportFor("video/av01")
Adapter les contenus multimédias
Les plates-formes de réseaux sociaux appliquent souvent des dimensions et des formats spécifiques pour des contenus multimédias partagés. En redimensionnant et recadrant les fichiers multimédias de manière proactive avant de partage, vous pouvez éviter les problèmes de distorsion ou de mise en forme inattendus les utilisateurs publient sur leurs plateformes préférées.
Fournir des instructions et des conseils clairs sur la façon dont les utilisateurs peuvent optimiser leurs contenus multimédias avant de les partager. Il peut s'agir de conseils sur l'ajustement des débits d'encodage, la définition des paramètres de quantification, le choix du format vidéo, la sélection des tailles de fichiers appropriées ou la compréhension de l'impact des différentes options de partage.
Améliorer la visibilité des médias
Ajouter des métadonnées pertinentes, telles que des titres, des descriptions et des tags à vos fichiers multimédias, peut améliorer leur visibilité. Encouragez les utilisateurs à ajouter leurs propres descriptions et légendes lorsqu'ils partagent des contenus, ce qui personnalise davantage l'expérience.
Ajouter des métadonnées aux images
La classe Jetpack ExifInterface écrit les métadonnées au format JPEG, PNG et WebP. sous forme de tags Exif.
// sets the title of the image in the form of Exif data
val exif = ExifInterface(imageFile)
exif.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, "Beautiful sunset")
exif.saveAttributes()