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には、Android 用の libshout、libvorbis、これら (ライブラリ) が Android でソース クライアントを作成するために必要であることが示されています。

私はアンドロイド開発に非常に慣れていません。コードに問題がある場合、またはそれを行う他の方法がある場合はお知らせください。ありがとう

4

2 に答える 2

1

私のgithubプロジェクトリポジトリandroid-icecast-broadcast をチェックアウトしてください。

マイクからの pcm オーディオをキャプチャし、エンコードします。アイスサーバーをブロードキャストします。ネイティブ ライブラリを含めましたが、独自にビルドすることもできます。

于 2015-11-02T10:32:17.213 に答える
-1

はい、PCM データを ogg または vorbis または opus 形式にエンコードするための追加のライブラリが必要です。NDK を使用して。

于 2015-01-09T07:36:00.560 に答える