3

我想在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 OK,正在发送密码,在“发送密码”消息之后没有服务器响应。

在此链接http://droidtools.sourceforge.net/content/icecast-client-android中显示 libshout、libvorbis for android,这些(库)是在 android 中制作源客户端所必需的?

我是android开发的新手。如果代码或其他方式有任何问题,请告诉我。谢谢

4

2 回答 2

1

查看我的 github 项目 repo android-icecast-broadcast

它从麦克风捕获、编码 pcm 音频。并广播冰服务器。我已经包含了本机库,但您可以自己构建它们。

于 2015-11-02T10:32:17.213 回答
-1

是的,您需要一个额外的库来将 PCM 数据编码为 ogg 或 vorbis 或 opus 格式。通过使用 NDK。

于 2015-01-09T07:36:00.560 回答