Я хочу передавать и аудио через SIP Connection в Java-приложении (SE). Я подключился к серверу и получил 200 сообщений OK. Я хочу получать данные, отправленные сервером.Я создал SOCKET и получил InputStream.Вот как я это делаю. 123.456.789.1 - это мой ip-адрес, а 1234 - это порт прослушивания моего приложения.
Socket socket=new Socket("123.456.789.1",1234);
InputStream in=socket.getInputStream();
System.out.println("inputSream available :"+in.available());
Но in.available () всегда равно 0.
Но еслиЯ получаю Object content=response.getContent()
;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(content);
byte[] contentBytes = bos.toByteArray();
длина contenBytes равна длине содержимого ответа. Но когда я пытаюсь получить inputStream и Play, как:
InputStream pp=new ByteArrayInputStream(b);
AudioStream as = new AudioStream(pp);
AudioData data = as.getData();
ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);
Исключениеthrows; java.io.IOException: не удалось создать аудиопоток из входного потока Затем я попытался прочитать входной поток in.read()
тогда, когда прочитал несколько байтов, и IOException было выброшено.Q1.Как я могу решить и получить InputStream из сокета?
Q2.как получить inputStream для воспроизведения аудио?
или дайте мне знать, где проблема и как ее решить.
ОБНОВЛЕНО: Спасибо всем, кто показал ошибку in.availabe();
Затем я изменил код.
ByteArrayOutputStream ou=new ByteArrayOutputStream();
int i=0;
System.out.println("Before while");
while((i=in.read())!=-1){
ou.write(i);
System.out.println("Wrote :"+i);
}
К сожалению, приложение не идет дальше. Это означает только До того, как будет напечатано . Приложение просто показывает, что работает (я использую IDE NetBeans). Я не знаю, почему.уточнение?