Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 650 fois - Téléchargée 13 fois
TMp3BufferingListener = class(TJavaLocal, JMediaPlayer_OnBufferingUpdateListener) private //Va stoquer notre formulaire pour lui transmettre le taux de téléchargement //et ainsi mettre à jour l'interface. FOwner : TExampleForm; public constructor Create(AOwner : TExampleForm); //Notez également la convention d'appel cdecl; ce n'est pas un choix //vos implémentation devront utiliser cette convention autrement //vous aurez des erreurs de compilation. procedure onBufferingUpdate(AMp: JMediaPlayer; APercent: Integer); cdecl; end;
TExampleForm = class(TForm) //[..] private // Déclaration de notre lecteur MP3 Android. FPlayer : JMediaPlayer; FBufferingListener : TMp3BufferingListener; public // Apprait dans la section publique sinon on y aura pas accés depuis // TMp3BufferingListener. procedure setLoaded(APercent:integer); // Procédure a appeler avec une url vers un mp3 à jouer pendant son // téléchargement. procedure playUrlMp3(AMp3Url:string); end;
uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.Jni.Media, Androidapi.Jni.NetWork, FMX.PlatForm.Android, Androidapi.Jni.GraphicsContentViewText;
{$Region 'Implémentation TMp3BufferingListener'} constructor TMp3BufferingListener.Create(AOwner : TExampleForm); begin FOwner := AOwner; end; procedure TMp3BufferingListener.onBufferingUpdate(AMp: JMediaPlayer; APercent: Integer); begin FOwner.setLoaded(APercent); end; {$EndRegion} {$Region 'Implémentation TExampleForm'} constructor TExampleForm.FormCreate(Sender: TObject); begin // Remarquez qu'ici on n'utilise pas // Player := JMediaPlayer.Create ce à vous aurez normalement pensé // Ce sera pareille pour la plus part des autre composant Android // on déclare avec J_nom_du_composant et on instancie avec TJ_nom_du_composant FPlayer := TJMediaPlayer.Create; // Dés lors nous faisons comme si nous étions sur java // Nous informons le lecteur que ce sera un flux FPlayer.setAudioStreamType(TJAudioManager.JavaClass.STREAM_MUSIC); // Nous créons notre listener FBufferingListener := TMp3BufferingListener.Create(self); // Nous affectons notre Listener aprés sa création évidemment FPlayer.setOnBufferingUpdateListener(FBufferingListener); end; procedure TExampleForm.setLoaded(APercent:integer); begin // On affiche notre pourcentage de téléchargement quelque part lblTaux.Text := 'Chargement à '+inttostr(APercent)+'%'; end; // Vous n'aurez qu' à appeler cette procédure n'importe quand vous le voulez // Ex : PlayUrlMp3('http://jj08.descamps.free.fr/MP3/hymnejoie.mp3'); // --Hymne à la joie de beethoven à la guitare par Jean Jacques Descamps // --site : http://jj08.descamps.free.fr procedure TExampleForm.PlayUrlMp3(AMp3Url:string); begin // important pour remettre à zéro le lecteur sans quoi vous aurez droit // à une exception et le reste de la procédure ne sera pas exécuté FPlayer.reset; // Nous définissons notre url // StringToJString : convertit une chaine Delphi en chaine java FPlayer.setDataSource(StringToJString(AMp3Url)); // Le lecteur se prépare FPlayer.prepare(); // Et débute la lecture FPlayer.start(); end; {$EndRegion}
21 mars 2015 à 10:29
7 nov. 2014 à 17:32
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.