簡體   English   中英

如何在Android中使用Icecast Client發送帶有音頻的標題和藝術家名稱

[英]How to send title & artist name with audio using icecast client in android

以下代碼按預期工作,可以向上流到icecast服務器。 但是我想發送額外的信息,例如標題,藝術家以及信息流。 我嘗試過添加標簽,例如ice-title,ice-artist,title,artist。 但這並沒有添加標題和藝術家

s = new Socket(server,port_num);
Log.d("VS", "Socket Created");
out =  new BufferedOutputStream(new DataOutputStream(s.getOutputStream()));
Log.d("VS", "Output Stream Established");
output = new PrintWriter(out);
Log.d("VS", "Send Header");
output.println("SOURCE /"+mountpoint+" ICE/2.0");
output.println("Authorization: Basic "+authString);
output.println("ice-name:"+title);
output.println("ice-url:echonet.cc");
output.println("TITLE="+title);
output.println("ARTIST="+generalUsername);
output.println("ice-username:"+generalUsername); 
output.println("ice-user:"+generalUsername);
output.println("content-type: application/x-ogg");
output.println("User-Agent: App");                  
output.println("ice-private: 0");
output.println("ice-public: 1");
output.println("ice-audio-info: ice-samplerate="+sampleRate_string+"ice-quality="+quality_string+";ice-channels="+channel_string);
output.println("ice-audio-info: ice-samplerate=8000;ice-bitrate=128;ice-channels=2");
output.println("\r\n");
output.println("\n");
output.flush();
Log.d("VS", "Header sent");
reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
for (String line; (line = reader.readLine()) != null;) {
   if (line.equals("")) break;
   Log.d("VS", "Responce From Server");
   Log.d("VS",line);
}

我對android編程非常陌生。 如果代碼中有任何問題或其他發送標題和藝術家的方式,請告訴我。 謝謝

通過修改本機代碼解決了問題

我在vorbis記錄器的啟動方法中添加了額外的參數,並相應地修改了其他功能。 在org_xiph_vorbis_encoder_VorbisEncoder.c和org_xiph_vorbis_encoder_VorbisEncoder.h中為藝術家添加了額外的參數,以獲取標題和藝術家作品。

有方法vorbis_comment_add_tag(&vc,“ Artist”,“ your extra parameter”); 在org_xiph_vorbis_encoder_VorbisEncoder.c中,因此我們只需要向其傳遞參數即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM