2013-06-19 2 views
3

Je veux développer un client source pour le serveur icecast dans android. J'ai beaucoup cherché sur le Net, mais je n'ai pas trouvé de solution correcte et aucun moyen de le faire.Pour développer un client source icecast dans android besoin de bibliothèques supplémentaires?

Si quelqu'un a des connaissances à ce sujet, répondez ici et je n'ai pas compris non plus comment envoyer ces métadonnées au serveur icecast.

Je vu les liens ci-dessous:

@Brad Merci pour votre réponse, je vu beaucoup de questions et plus d'entre eux ont répondu par vous. suis juste en attente de votre réponse, grâce 1) J'ai installé le serveur Icecast sur ma machine locale 2) De mon programme Android i connecté à Icecast serveur (connexion tcp) 3) Le code est ci-dessous

s = new Socket("10.0.2.2",8000); 
      Log.d("VS", "Socket Created"); 
      OutputStream out = s.getOutputStream(); 
      Log.d("VS", "Output Stream Established"); 
      output = new PrintWriter(out); 
      Log.d("VS", "Send Header"); 
      output.println("SOURCE /stream ICE/1.0"); 
      output.println("content-type: audio/mpeg"); 
      output.println("Authorization: Basic c291cmNlOmhhY2ttZQ=="); 
      output.println("ice-name: This is my server name"); 
      output.println("ice-url: http://www.google.com"); 
      output.println("ice-genre: Rock"); 
      output.println("ice-bitrate: 128"); 
      output.println("ice-private: 0"); 
      output.println("ice-public: 1"); 
      output.println("ice-description: This is my server description"); 
      output.println("ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2"); 
      output.println(""); 
      output.flush(); 
      Log.d("VS", "Header sent"); 
      reader = new BufferedReader(new InputStreamReader(s.getInputStream())); 
      for (String line; (line = reader.readLine()) != null;) 
      { 
          if (line.isEmpty()) break; 
          Log.d("VS", "Responce From Server"); 
          Log.d("VS",line); 
      } 
      Log.d("VS", "Sending Password"); 
      output.println("pass:hackme"); 
      output.println(""); 
      output.flush(); 
      for (String aline; (aline = reader.readLine()) != null;) 
      { 
          if (aline.isEmpty()) break; 
          Log.d("VS", "Responce From Server"); 
          Log.d("VS",aline); 
      } 

en logcat: Socket créé, flux de sortie Etabli, tête d'envoi, tête envoyé, Responce à partir du serveur, HTTP/1.0 200 OK, Envoi mot de passe, après "Envoi mot de passe" msg-t-il pas responsab serveur e.

Dans ce lien http://droidtools.sourceforge.net/content/icecast-client-android il est montré que libshout, libvorbis pour android, ceux-ci (bibliothèque) sont nécessaires pour faire le client source dans android?

Je suis très nouveau dans le développement android.S'il y a un problème dans le code ou d'une autre manière de le faire s'il vous plaît faites le moi savoir. Merci

+0

Comme je l'ai mentionné dans le post que vous avez lié à http://stackoverflow.com/a/9985297/362536, les métadonnées sont mises à jour via une simple requête HTTP. Pouvez-vous élaborer sur ce que vous ne comprenez pas à ce sujet? – Brad

+0

Après avoir établi une connexion avec le serveur icecast. Comment vous envoyez les données au serveur icecast. S'il vous plaît partager votre recherche –

+0

@Williams Pour l'envoi de flux audio au serveur, vous devez encoder l'audio en mp3 ou ogg.In mon projet, le code est totalement changé, après la connexion, j'encode le son au format ogg puis envoyer ce streaming live codé au serveur. En fait, j'ai utilisé le NDK pour encoder le son, il n'y a pas d'option pour encoder le son dans Android à ma connaissance. –

Répondre

0

Oui, vous avez besoin d'une bibliothèque supplémentaire pour encoder les données PCM au format ogg ou vorbis ou opus.En utilisant NDK.

1

Commander mon dépôt de projet github android-icecast-broadcast.

Il capture, code l'audio pcm depuis le micro. et diffuse un serveur de glace. J'ai inclus des bibliothèques natives mais vous pouvez les créer vous-même.

Questions connexes