2017-07-09 5 views
0

Salut les gars, moi et quelques autres djs veulent être en mesure de télécharger nos mixes à un site qui pourrait ensuite être diffusé directement dans mon application. au moment où j'ai les fichiers stockés sur google drive. ils vont télécharger et puis je peux jouer via un lecteur multimédia. mais je veux que l'utilisateur soit en mesure de diffuser la musique directement à partir du site ..streaming un mp3 à partir d'un site/serveur

1) quel site suggéreriez-vous pour le téléchargement de la musique. J'ai un compte Firebase serait-ce une idée ou serait-ce que les données des fichiers que je télécharge sont chères? Im sur le salaire que vous allez type de compte. **** EDIT donc Ive a trouvé que firebase pourrait être une option viable réelle pour ce faire

2) quelle serait la meilleure façon de mettre en œuvre le code afin qu'il flux la musique directe plutôt que de le télécharger d'abord ?

**** EDIT Ive a trouvé un code Internet tandis que la pêche au chalut qui pourrait rendre ce viable mais je couture à obtenir une erreur de pointeur NULL sur la SetDataSource

ceci est mon code

i have ce mon onchild a ajouté

final String url = dataSnapshot.child("url").getValue(String.class); 
    urlList.add(url); 

puis dans mon onitemclick i utiliser

mp3url = urlList.get(i); 
fetchAudioUrlFromFirebase(); 

enfin la méthode pour le streaming mp3

private void fetchAudioUrlFromFirebase() { 
    String mp3 = mp3url; 
    final FirebaseStorage storage = FirebaseStorage.getInstance(); 
    storageRef = storage.getReferenceFromUrl(mp3); 
    storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
     @Override 
     public void onSuccess(Uri uri) { 
      try { 
       // Download url of file 
       final String url = uri.toString(); 
       mMediaplayer.setDataSource(url); 
       // wait for media player to get prepare 
       mMediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
        @Override 
        public void onPrepared(MediaPlayer mp) { 
         mp.start(); 
        } 
       }); 
       mMediaplayer.prepareAsync(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
    }) 
      .addOnFailureListener(new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception e) { 
        Log.i("TAG", e.getMessage()); 
       } 
      }); 

} 

c'est mon plein logcat avec l'erreur de pointeur NULL

07-11 18:39:45.326 2565-2565/com.example.harrops.h20droidapp2 E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.harrops.h20droidapp2, PID: 2565 
                      java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference 
                       at com.example.harrops.h20droidapp2.Mixes$3.onSuccess(Mixes.java:198) 
                       at com.example.harrops.h20droidapp2.Mixes$3.onSuccess(Mixes.java:192) 
                       at com.google.android.gms.tasks.zze$1.run(Unknown Source) 
                       at android.os.Handler.handleCallback(Handler.java:751) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:154) 
                       at android.app.ActivityThread.main(ActivityThread.java:6119) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
+0

La question (1) ne concerne pas la programmation, elle est donc hors-sujet. La question (2) est trop large et est donc hors sujet. –

+0

il s'agit de programmation, joe comment est-ce pas? merci pour l'aide si – markharrop

+0

@JoeC est-ce un peu mieux? – markharrop

Répondre

1

La ligne suivante signifie: mMediaPlayer est null.

java.lang.NullPointerException: Attempt to invoke virtual method 
'void android.media.MediaPlayer.setDataSource(java.lang.String)' 
on a null object reference 

Veuillez vérifier que mMediaplayer est initialisé avant l'appel de la méthode onSuccess (Uri uri).

mMediaplayer = new MediaPlayer(); 
+0

qui était exactement mon problème #You Kim – markharrop

1

Q1: je n'ai aucune idée sur un site ce faire, désolé

Q2: vous devez apprendre à utiliser la classe MediaPlayer dans android et voici un exemple:

String link = "your link.mp3"; //usually it's ends with .mp3 
Mediaplayer player = new MediaPlayer(); 
player.setDataSource(link); 
player.prepare();//prepare to play 
player.start(); 

C'est un exemple rapide et très simple. Vous pouvez l'éditer selon vos besoins.

+0

merci Mohad. juste cette seconde vu quelque chose de similaire à l'aide de Firebase affichera des résultats si cela fonctionne. – markharrop

+0

s'il vous plaît vérifier ma question mise à jour merci pour votre aide – markharrop

+1

@markharrop pouvez-vous poster la trace de la pile complète s'il vous plaît? – Mohad12211