【发布时间】:2015-02-13 21:53:27
【问题描述】:
以下代码按预期工作,可将流式传输到 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("\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 编程很陌生。如果代码或任何其他发送标题和艺术家的方式有任何问题,请告诉我。谢谢
【问题讨论】:
-
这看起来非常非常错误。只需使用 libshout 绑定:stackoverflow.com/a/28192505/2648865