2011-05-12 2 views
0

내가하고 싶은 것은 간단한 자바 오디오 스트리밍 서버를 만드는 것이다. 일을 단순하게 유지하려면 정적 인 MP3 파일이 될 것이지만 나는 이론이 옮겨 질 것이라고 확신한다. 클라이언트는 로컬 또는 인터넷을 통해 이루어질 수 있으며 서버와 통신하도록 프로그래밍 할 수있는 모든 장치 또는 컴퓨터가 될 수 있습니다.Java에서 오디오 스트리머 만들기 - 시작 위치

스트리밍/네트워킹 또는 서버/클라이언트와 관련된 내용을 프로그래밍 해 본적이 없으므로 새로운 것을 배우는 데 유용한 연습이 될 것이라고 생각했습니다. - 서버가 사용자가 의도 된 사용자인지 알 방법이 수행되는 방법, 클라이언트의

  • 인증 : 내가 생각

    고려할 사항이있다.

  • 클라이언트에서 일종의 버퍼링이 발생합니다. 클라이언트가 버퍼에서 읽을 때 캐시 된 버퍼 파일에 파일 잠금이있을 가능성이 있으므로 단순히 파일의 새 세그먼트를 끝에 추가 할 수는 없습니다.

  • 실제로 얼마나 많은 MP3 파일을 재생해야합니까? 선형 적이므로 첫 번째 x KB에는 음악 사운드의 첫 번째 y 초에 대한 모든 정보가 들어 있습니다.

  • 파일을 어떤 크기로 분할합니까?

  • 스트림에서 MP3 파일을 얼마나 멀리 봤는지 알 수 있습니까? 어떻게 처리 할 수 ​​있을까요?

  • 실제로 어떤 스트리밍 프로토콜을 사용해야합니까? 나는 일종의 HTTP 요청이 여기에 가장 좋을 것이라고 추측하고 있습니까? 그것은 80 이외의 포트를 통해 HTTP 요청을 할 수 있습니까?

  • 합니까 자바는

  • 가 그것을 가능 ... 신뢰할 수있는 전송을위한 붙박이 프로토콜이 있거나 핵심적 껄끄 러운 들어갈 등 ... 앞뒤로 승인으로 패킷을 전송 처리해야 할 트래픽을 암호화 하시겠습니까? 파일을 읽을 수는 없지만 모바일과 같은 저전력 장치가 부드러운 재생을 위해 충분히 빨리 해독 할 수는 없다.

나는 고려해야 할 더 많은 것들이 있다고 확신하지만, 나는 내 머리 꼭대기에서 생각할 수있는 것들이다.

나는 위의 모든 질문에 실제로 질문이 없다고 생각합니다. 더 큰 소리로 생각하니, 질문을하는 이유는 무엇입니까? 어디서부터 시작해야합니까? 재미있는 독서가 있습니까? 누구든지 위의 생각을 가지고 있습니까?

다시 말해서, 나는 "바퀴를 다시 발명"하는 것을보고 있으며, 내가 따라 갔을 때 이런 종류의 물건에 대해 배우고 싶었 기 때문에 지식을 다른 물건으로 옮길 수 있습니다.

답변

0

실제로 사용하는 프로토콜은 무엇입니까 스트림? 나는 어떤 종류의 HTTP를 가정하고있다 요청이 여기에 가장 좋을까? 포트가 아닌 80 HTTP 요청을 할 수 있습니까? 그렇지 않습니다.

그래 당신은

합니까 자바 신뢰할 수있는 전송을 위해 붙박이 프로토콜이 있거나 핵심적 껄끄 러운 및 거래에 들어가 을해야합니까 (표기법 http://streamserver.com:8080/path/to/music.mp3 사용) 80보다 다른 포트를 통해 갈 수 있습니다 등 ... 다시 및 승인과 등 패킷을 전송과 ...

사용하는 경우가있다 HTTP

트래픽을 암호화 할 수 있습니까? 파일을 읽을 수는 없지만 충분한 보안을 제공하면 과 같은 저전력 장치가 원활하게 재생되도록 만큼 빨리 해독 할 수 없습니다.

표준 SSL 암호화 된 연결은 충분히 빨리 내가 ​​HTTP를 사용하지 않은 경우 어떻게 내 옵션을 것, 관심 부족하여

+0

충분히 확보? 나는 일종의 소켓 전송을 사용할 수 있다고 가정하고 있습니까? 이런 식으로하는 것의 단점은 무엇입니까? 당신의 응답을 주셔서 감사합니다. – Cheetah

+0

http를 사용하지 않으려면 tcp 연결이 필요하며 사용자가 직접 프로토콜을 만들어야합니다 (클라이언트가 서버에 스트리밍을 시작하고 EoF를 명시 적으로 처리해야 함을 서버에 알려야 함) –

+0

소리가납니다 훨씬 더 재미있는 (학습 관점에서). 그것은 내 자신의 버퍼링, 캐싱 및 조각화를해야한다는 것을 의미합니다 - 맞습니까? 이것은 당신이 언급 한 것과 같습니다 : http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html – Cheetah