Android で icecast サーバーのソース クライアントを開発したいと考えています。私はネット上で多くのことを検索しましたが、正しい解決策とそれを行う方法は見つかりませんでした。
誰かがそれについて知っている場合は、ここに返信してください。そのメタデータを icecast サーバーに送信する方法もわかりませんでした。
以下のリンクを見ました。
- Icecast 2: プロトコルの説明、C# を使用したストリーミング、
- Objective-C、C、または C++ を使用して Icecast / SHOUTcast にブロードキャストし、
- 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 でソース クライアントを作成するために必要であることが示されています。
私はアンドロイド開発に非常に慣れていません。コードに問題がある場合、またはそれを行う他の方法がある場合はお知らせください。ありがとう