如何在android中使用icecast客户端发送带有音频的标题和艺术家姓名



以下代码可按预期工作,用于向icecast服务器上传。但我想发送额外的信息,如标题,艺术家和流。我试过添加标签,比如冰标题,冰艺术家,标题,艺术家。但它并没有添加标题&艺术家

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("rn");
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","您的额外参数")在org_xiph_vorbis_encoder_VorbisEncoder.c中,所以我们只需要将参数传递给它。

最新更新