Streaming audio en format AAC avec Android
Comme je le comprends, Android ne lisent format AAC audio si il est encodé en MPEG-4 et 3GPP.
Je suis capable de jouer des fichiers audio AAC encodé comme M4A quand c'est local à l'application, mais il échoue lors de l'obtention à partir d'un serveur.
Les œuvres suivantes, comme le fichier m4a est organisé localement dans le res/raw répertoire.
MediaPlayer mp = MediaPlayer.create(this, R.raw.*file*);
mp.start();
Le suivant ne fonctionne pas. (Mais ne avec MP3).
Uri uri = Uri.parse("http://*example.com*/blah.m4a");
MediaPlayer mp = MediaPlayer.create(this, uri);
mp.start();
Quelqu'un peut nous donner un indice sur les raisons de l'échec lorsque le m4a fichier audio n'est pas local?
Voici (une partie de) l'erreur...
ERROR/PlayerDriver(542): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus
ERROR/MediaPlayer(769): error (200, -32)
WARN/PlayerDriver(542): PVMFInfoErrorHandlingComplete
DEBUG/MediaPlayer(769): create failed:
DEBUG/MediaPlayer(769): java.io.IOException: Prepare failed.: status=0xC8
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.prepare(Native Method)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:530)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:507)
...
Je suis ciblage du SDK 1.6.
- Vous êtes à la confusion de l'encodage avec les formats de fichier. AAC est un format de codage audio. M4A est un type de fichier, ou un paquet, qui se trouve autour de l'AAC. 3GPP est similaire, mais peut contenir d'autres types de données audio codées. Voir ici developer.android.com/guide/appendix/media-formats.html et voilà en.wikipedia.org/wiki/M4a.
- Vrai, je devrais avoir décrit le 3GPP et M4A comme des "contenants" pour l'audio AAC. Sur le dessus de ma tête, je pense que M4A peut seulement être utilisé pour les fichiers statiques, et 3GPP pouvez seulement de flux à l'aide de RTSP, plutôt que de HTTP? Cela pourrait entraîner des problèmes pour le streaming HTTP. Corrigez-moi si je me trompe...
Vous devez vous connecter pour publier un commentaire.
Ce travail autour de vous permet de lire des fichiers M4A sur le net (et AAC des fichiers dans d'autres récipients tels que MP4 & 3GP). Simplement, il télécharge le fichier et joue à partir du cache.
Il est le open source OpenMXPlayer qui illustre comment gérer l'audio à la fois pour les fichiers locaux ou en ligne/les sources de streaming. Il ne supporte pas que l'AAC, mais aussi les autres formats populaires.
L'idée derrière cela est d'utiliser la MEdiaCodec API, introduit dans Android 4.1 .
Espère que cela donne un bon point de départ pour toute personne ayant besoin d'un moyen rapide et sans tracas lecteur audio de mise en œuvre.
Il y a un Freeware Audio Avancé (AAC) Décodeur pour Android. Vous pouvez l'utiliser pour obtenir de l'aide et de l'Orientation ou de l'utilisation Multijoueur classe à la lecture de l'audio aac. Il y a un exemple d'application et de la bibliothèque en elle pour vous aider à comprendre
Espère que cette aide
Je l'ai essayé aussi, mais je ne pouvais pas trouver la solution!
Lors de la dernière Google I/O, j'ai vu quelque chose qui m'a beaucoup aidé. Il est l'Extension de MediaPlayer et améliorer beaucoup de choses! Prendre un coup d'oeil.
EXOPLAYER PEUT VOUS AIDER BEAUCOUP
Cochez cette partie de l'exemple:
EXOPLAYER - je peux jouer n'importe quoi écoulements (audio et vidéo)!
LAISSEZ-MOI SAVOIR SI VOUS AVEZ BESOIN D'AIDE POUR METTRE EN ŒUVRE! 🙂
C'est un tir sauvage dans l'obscurité, mais j'ai vu un comportement similaire avec le flash player où il fait ignore le nom de fichier et ne repose que sur le type MIME envoyé par le serveur. Toute idée de ce que les en-têtes sont envoyés vers le bas à partir de example.com? Vous voudrez peut-être essayer d'emballage de votre bla.m4a dans une page que l'on peut définir les en-têtes puis les flux de données binaires. Donner à ces types d'un coup et la communauté aimerais avoir une confirmation de ce qui fonctionne:
audio/mpeg
audio/mp4a
audio/mp4a-latm
audio/aac
audio/x-aac
audio/m4a audio/aac audio/aacp audio/x-aac audio/mpeg audio/mp4a audio/mp4a-latm audio/mp4
J'ai écrit un petit blog sur une solution basée sur le cloud-je utiliser pour un lecteur de musique que je suis en développement. Il est basé sur le jeune Android Cloud Services (ACS), qui n'est pas encore disponible, mais encore, il montre une solution potentielle à l'aide de nuage de transcodage pour diffuser des fichiers multimédia. Regardez : http://positivelydisruptive.blogspot.com/2010/08/streaming-m4a-files-using-android-cloud.html
Joel
essayer,
1)
MP.prepareAsync()
2)
onPrepared() { mp.start() }