Я должен создать клиент-серверную систему для потоковой передачи видео и аудио. Это было бы очень просто. Как стиль YouTube. Сервер должен сопроводить клиенты, предоставляющие список medias сначала и ожидающие выбор каждого клиента начать передавать медиа потоком. До создают сокет и показ простого списка, я нахожусь на нем;), Но я не знаю, который класс мог я использовать для потока. Примером является в основном стиль YouTube. Как я могу начать передавать потоком, Как клиент может приостановить воспроизведение, как может? Я знаю, как передать текст потоком, но что относительно видео? Вы знаете какую-либо учебную страницу? Это очень отличается от этого простого клиентского примера сервера?
import java.io.*;
import java.io.*;
import java.net.*;
public class ThreadedEchoServer {
public static void main(String[] args) {
try {
int i = 1;
ServerSocket s = new ServerSocket(8189);
while(true) {
Runnable r = new ThreadedEchoHandler(incoming, i);
Thread t = new Thread(r);
t.start();
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ThreadedEchoHandler implements Runnable {
private Socket incoming;
private int counter;
public ThreadedEchoHandler(Socket i, int c) {
incoming = i;
counter = c;
}
public void run() {
try {
try {
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream);
out.println("BYE to exit");
boolean done = false;
while (!done && in.hasNextLine()) {
String line = in.nextLine()) {
out.println("Echo: " + line);
if (line.trim().equals("BYE"))
done = true;
out.println("BYE to exit");
}
} finally {
incoming.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Надежда Вы могли разъяснить мои идеи. С наилучшими пожеланиями.
Для потоковой передачи и общения с клиентами вам необходимо определить протокол: поиск в Интернете RTP и RTSP. Это должно дать вам довольно хорошее представление о том, что вам нужно для реализации этих протоколов или даже для создания своего собственного.
Что касается реализации, взгляните на проект red5: http://red5.org/
Взгляните также на Xuggler: http://www.xuggle.com/ xuggler / Этот проект поможет вам сэкономить много строк кода. Обратите внимание, что его разработка устарела.
Ура.
Ознакомьтесь с Java Media Framework (в нем есть учебные пособия): http://java.sun.com/javase/technologies/desktop/media / jmf /
Это вообще работает?
while(true) {
Runnable r = new ThreadedEchoHandler(incoming, i);
Thread t = new Thread(r);
t.start();
i++;
}
Я думаю, ваш код создаст кучу потоков с входящими сокетными соединениями ... вы, вероятно, захотите сделать следующее:
while(true) {
Runnable r = new ThreadedEchoHandler(incoming.accept(), i);
Thread t = new Thread(r);
t.start();
i++;
}
ThreadedEchoHandler
должен использовать Socket вместо ServerSocket. Принимайте блоки до тех пор, пока клиент не подключится, иначе вы создадите бесконечное количество потоков без подключения ... Я не думаю, что у вас есть что-то, что помешает вам сделать это в данный момент.
Ребята, спасибо большое за ваши ответы и за редактирование названия. Я здесь новичок, новичок в java, новичок в сетевых технологиях. Почему я делаю свой навык на потоковой передаче? Это учебный пример. Я просматриваю много учебников по сетевым технологиям и я видел RTP, но я не читал о, потому что я думал (для чтения на форумах), что это только для потокового вещания в реальном времени, как потоковое вещание веб-камеры... но это то, что я просто так запутался LOL
Lirik конечно, что вы сказали, я забыл некоторые строки кодирования
while(true) {
Socket incoming = s.accept();
Runnable r = new ThreadedEchoHandler(incoming, i);
...
или как вы сказали
while(true) {
Runnable r = new ThreadedEchoHandler(s.accept(), i);
...
Присмотрюсь к тому, что вы сказали, ребята. С уважением!