2015-02-10 115 views
0

中发送带有音频的标题和艺术家名称以下代码按照预期流向icecast服务器的方式工作。但我想发送额外的信息,如标题,艺术家和流。我曾尝试添加冰标题,冰艺术家,标题,艺术家等标签。但它不添加标题&艺术家如何使用icecast客户端在android

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编程。如果在代码或任何其他方式发送标题&艺术家有任何问题,请让我知道。谢谢

+0

这看起来非常非常错误。只需使用libshout绑定:http://stackoverflow.com/a/28192505/2648865 – TBR 2015-02-13 11:24:34

回答

-1

通过修改本机代码解决问题

我已经在vorbis记录器的启动方法&中相应地修改了其他功能,增加了额外的参数。 在org_xiph_vorbis_encoder_VorbisEncoder.c中为艺术家添加了额外的参数& org_xiph_vorbis_encoder_VorbisEncoder.h 为了获得标题&艺术家的工作。

有方法 vorbis_comment_add_tag(& vc,“Artist”,“your extra parameter”); in org_xiph_vorbis_encoder_VorbisEncoder.c所以我们只需要传递参数给它。