我想在android中为icecast服务器开发一个源客户端。我在网上搜索了很多,但我没有找到任何正确的解决方案,也没有办法做到这一点。
如果有人了解它,请回复此处,我也不明白如何将该元数据发送到icecast服务器。
我查看了以下链接:
@Brad 感谢您的回复, 我看到了很多问题,而且你回答的问题越多。 我等着你的回复 谢谢 1)我在本地机器上安装了icecast服务器 2)从我的android程序我连接到icecast服务器(tcp连接) 3)代码在
之下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);
}
在logcat中: 插槽创建, 输出流已建立, 发送标题, 标题已发送, 从服务器响应, HTTP / 1.0 200好的, 发送密码, 在“发送密码”msg后没有服务器响应。
在这个链接http://droidtools.sourceforge.net/content/icecast-client-android中显示libshout,libvorbis for android,这些(库)需要在android中制作源客户端?
我在android开发方面很新。如果代码或其他方式有任何问题,请告诉我。 谢谢
答案 0 :(得分:1)
结帐我的github项目回购android-icecast-broadcast。
它是从麦克风捕获,编码pcm音频。并播放冰服务器。 我已经包含了原生的库,但你可以自己构建它们。
答案 1 :(得分:0)
是的,您需要一个额外的库来将PCM数据编码为ogg或vorbis或opus格式。使用NDK。