2011-05-12 47 views
0

我正在做的是创建一个简单的Java音频流媒体服务器。为了简单起见,它只是静态的MP3文件,但我相信理论的转移。客户端可以是本地的或通过互联网,并且可以是可以被编程为与服务器通信的任何设备或计算机。用Java创建音频流 - 从哪里开始?

我从来没有任何编程相关的流媒体/网络或服务器/客户端之前,所以我认为这将是一个有益的锻炼,学到新的东西。

事情我认为有需要考虑:

  • 认证客户端 - 这将如何做,如何将服务器知道用户是目标用户。

  • 会有某种形式的客户端上的缓冲。当客户端正在从缓冲区中读取时,可能会在缓存的缓冲区文件上产生文件锁定,因此我无法简单地将文件的新分段追加到最后。

  • 如何将MP3文件的钱你真的需要玩什么呢?它是线性的,所以第一个x KB包含音乐声音的前y秒的所有信息。

  • 我将文件流式传输到哪个区段?

  • 是否有可能知道你是通过流MP3文件多远?这将如何处理?

  • 什么协议,我实际上用于流?我假设某种HTTP请求在这里最好?可以通过80以外的端口执行HTTP请求,不是吗?

  • 的Java是否有可靠的传输协议,内置的还是你必须进入基本事实和处理发送数据包来回确认...等...

  • 是否有可能加密流量?对于文件没有被读取的足够安全性,但不是那么多,诸如移动设备之类的低功率设备不能足够快速地解密以便流畅播放。

我相信还有很多事情需要考虑,但那些是我能想到的其他问题。

我在上述所有假设有不是一个真正的问题,它更自言自语,所以我想为什么的问题是:我从哪里开始?有没有有趣的内容?有没有人对上述有任何想法?

只是重申一下,我在看“重新发明轮子”在这里,我想了解这类的东西,我就跟着去了,所以我可以传递知识到其他的东西。

回答

0

什么协议,我实际使用 流?我假设某种HTTP 请求在这里最好?这是 可能做一个HTTP请求通过一个 端口以外的80是不是?

是的,你可以去了另一个端口超过80(使用符号http://streamserver.com:8080/path/to/music.mp3

确实的Java有内置的协议 可靠传输或你有 进入基本事实及处理 与发送数据包背部和确认来回 ...等...

它,如果你正在使用HTTP

是否可以加密流量?由于 文件没有被读取,但没有太多 足够的安全性,低功耗设备,如 手机不能足够快地解密它 流畅播放。

标准SSL加密连接的速度非常快,并为您的

+0

出于兴趣足够安全,这将是我的选择,如果我没有使用HTTP?我假设我可以使用某种套接字传输?这样做的缺点是什么?感谢您的答复。 – Cheetah 2011-05-12 15:47:07

+0

如果你不想使用http,那么将需要一个tcp连接,然后你必须制定你自己的协议(客户端必须告诉服务器哪个文件开始流式传输,EoF需要明确处理) – 2011-05-12 16:04:29

+0

听起来(从学习的角度来看)更有趣。那意味着我将不得不做我自己的缓冲,缓存和碎片 - 对吧?这是你指的那种东西:http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html – Cheetah 2011-05-12 16:48:43