android - 将Ogg文件上传到Android中的音频流

标签 android audio shoutcast icecast

我在互联网广播应用中是菜鸟。我正在使用icecast进行音频流传输,因此首先在android应用程序中,我捕获了ogg文件中的音频字节,因此我想将此文件发送以进行音频流传输。

我的问题我将如何发送完整的* .ogg文件或其他格式的文件?任何帮助请

这是我连接到正在运行的icecast的

Socket s = new Socket("101.57.116.17", 8000);
Socket s = new Socket("101.57.116.17", 8000);
Log.d("VS", "Socket Created");
OutputStream out = s.getOutputStream();
Log.d("VS", "Output Stream Established");
PrintWriter output = new PrintWriter(out);
Log.d("VS", "Send Header");
output.println("SOURCE /app ICE/2.3.3");
output.println("content-type: audio/mpeg");
output.println("Authorization: Basic c291cmNlOmhhY2ttZQ==");
output.println("ice-name: Server");
output.println("ice-genre: Rock");
output.println("ice-bitrate: 128");
output.println("ice-private: 0");
output.println("ice-public: 1");
output.println("ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2");
output.println("");
output.flush();
Log.d("VS", "Header sent");
BufferedReader reader = new BufferedReader(new InputStreamReader(
        s.getInputStream()));
String response = reader.readLine();
Log.v(LOG_TAG, response);

HttpClient client = new DefaultHttpClient();

HttpGet httpGET = new HttpGet(
        "http://101.57.116.17:8000/admin/metadata?pass=hackme&mode=updinfo&mount=/app&song=akon");
httpGET.setHeader("Authorization", "Basic c291cmNlOmhhY2ttZQ==");
httpGET.setHeader("User-Agent", "(Mozilla Compatible)");

HttpResponse metaDataResponse = client.execute(httpGET);

System.out.println("Response Code : "
        + metaDataResponse.getStatusLine().getStatusCode());

BufferedReader rd = new BufferedReader(new InputStreamReader(
        metaDataResponse.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}

最佳答案

连接到Icecast服务器并获得授权后,只需开始通过同一连接发送流数据即可。

请注意,您需要以发生回放的速率执行此操作。否则,您将超出缓冲区,客户端的音频将根本无法工作,或者会跳来跳去。

关于android - 将Ogg文件上传到Android中的音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092258/

相关文章:

audio - 获取 Icecast 歌曲标题而不缓冲音频

android - 使用 cocos2d-X 获取 fatal error 11

HTML5 音频流延迟,强制播放?

android:如何将填充添加到 FrameLayout 内的 LinearLayout

javascript - 将立体声音频文件拆分为每个 channel 的 AudioNodes

audio - youtube音频的实时处理

android - 如何在android 2.2中播放shoutcast流

android - 在 Android 上解析 SHOUTcast 7.html 元数据

Android 应用程序在亚马逊 fireTV 中没有响应

java - 适用于 SRS 传感器的 Android 汽车 CarSensorManager