2010-11-24 41 views
2

Lorsque je lis certains fichiers MP3 (tels que les leçons de JapanesePod101.com) sur mon iPod Touch, les paroles ou les transcriptions intégrées dans les fichiers MP3 sont affichées dans le lecteur multimédia. Les paroles sont, je crois, stockées en tant que tags ID3/ID4 dans les métadonnées MP3. Je trouve que c'est une fonctionnalité extrêmement utile, et je crois que je ne suis pas le seul. Malgré cela, ni le lecteur multimédia Android stock ni aucun autre lecteur multimédia que j'ai téléchargé du marché ne semble supporter cela. Je n'ai juste pas été en mesure de trouver un moyen d'obtenir des fonctionnalités sur mon Nexus One.Y a-t-il quelque chose dans l'architecture ou l'API Android qui empêche les gens de créer des lecteurs MP3 qui lisent des paroles intégrées?

Cette fonctionnalité est assez importante pour moi que je considère l'apprentissage du développement Android juste pour que je puisse écrire un lecteur multimédia simple qui affiche des paroles ou des notes intégrées. Cependant, le fait que personne d'autre ne semble avoir fait cela me fait réfléchir - est-ce même possible? Y a-t-il quelque chose dans l'architecture ou les API Android qui rendent difficile ou impossible la lecture et l'affichage des informations de paroles à partir de fichiers MP3? Je détesterais plonger dans le processus d'apprentissage et découvrir ce que je vis ne peut pas être facilement fait. (Je veux dire, si tout le reste échoue je suppose que je pourrais écrire mon propre décodeur MP3, mais c'est plus de problèmes que je suis prêt à passer en ce moment).

J'ai déjà posé cette question sur le Android Enthusiasts Stack Exchange Beta Site, mais rétrospectivement j'ai décidé qu'il s'agissait plus d'une question de programmation et j'ai décidé qu'il était préférable de demander ici.

+0

non, il n'y a pas de limitation technique. –

Répondre

3

Oui, certainement plus d'une question de programmation. Juste à partir de ma brève expérience de lecture de la spécification ID3, je pense que c'est probablement juste que le décodage des tags ID3 est un PITA complet. Je suis sûr que cela peut être fait, car il existe des applications d'édition de balises MP3 disponibles pour Android (que ce soit des paroles de soutien ou non, je ne sais pas).

ID3v2.3 semble prendre en charge les paroles synchronisées et non synchronisées via les trames SYLT et USLT de l'en-tête. J'imagine que c'est une fonctionnalité tellement sous-utilisée que cela ne vaut pas la peine d'en faire autant. Les MP3 achetés ne portent pas cette information (je me suis toujours demandé pourquoi pas?), Il faudrait donc les ajouter manuellement (ou automatiquement via une API de service de paroles, mais cela implique beaucoup plus de codage).

Here est la spécification ID3v2.3 si vous souhaitez examiner de plus près ... (abandonner toute espérance, vous qui entrez ici)

1

Le problème peut être que la plupart des gens utilisent le haut- mécanismes de lecture mp3, et cela peut ne pas soutenir l'affichage des paroles ni être très facile à synchroniser avec quelque chose d'autre à faire l'affichage des paroles.

Il se peut donc qu'il faille écrire quelque chose qui fasse son propre décodage mp3.

Très probablement cela devrait être fait en code natif. D'autre part, sur android, la sortie audio (et sauf si vous utilisez opengl, affichage vidéo) doit être faite à partir de Java. Donc, vous regardez une bonne quantité de travail pour décoder les données avec une bibliothèque native et ensuite l'expédier pour la lecture et l'affichage de Java. Donc, pour répondre à votre question - est-ce possible? Définitivement

Est-il rendu facile par les API android? - pas vraiment

+0

Oui, ça résume assez bien. : (Heck de beaucoup de travail, mais possible. – kcoppock

1

Je viens d'ajouter une nouvelle demande de fonctionnalité qui permettrait à Android de lire USLT dans la balise ID3. Cela permettra aux lecteurs musicaux natifs et tiers d'afficher les paroles. Si vous voulez cette fonctionnalité, veuillez lancer la demande ci-dessous et poster vos commentaires.

http://code.google.com/p/android/issues/detail?id=32547