将音频从Android设备流式传输到另一个设备

时间:2016-11-01 04:31:06

标签: android sockets audio streaming android-mediaplayer

我如何通过互联网将音频从一台设备传输到另一台设备?我知道使用Java套接字发送基本数据,但想知道如何:

  1. 在文件的中间开始流式传输(例如,在歌曲中间)
  2. 发送数据需要什么格式。 MediaPlayer可以将url作为数据源,那么从服务器端发送音频时应该如何表示?
  3. 由于

1 个答案:

答案 0 :(得分:1)

实施音乐流媒体应用后,我可以和你分享一下。

如果您想要流式传输和使用Android MediaPlayer课程,MP3或OGG是您格式化的最佳选择。

如果您的体系结构是客户端 - 服务器,即Internet中的真实服务器为Android设备提供流,那么只需通过HTTP流式传输MP3或OGG字节。只需将MediaPlayer指向服务器上的URL即可。

如果您的架构与您自己的自定义套接字代码是对等的,您可以创建一个"代理http"在专用线程上侦听localhost的服务器。您将MediaPlayer实例指向本地进程内套接字服务器(例如http://localhost:54321/MyStream.mp3)。然后,您必须实现代码来解析HTTP get请求表单MediaPlayer,然后代理自定义P2P套接字协议和连接到本地http服务器的侦听器之间的流字节。很多无线电流媒体应用都是这样做的,以便从MP3流中解析ICECAST元数据。 Here's the code I use for my radio streaming app这样做。

对于"从文件中间开始"方案,您可能会发现我的MP3 Stream Reader class很有用。它包装一个InputStream(文件,套接字流等)并同步到你从哪里开始的下一个有效帧。只需拨打read_next_chunk即可获取下一个音频块及其格式。 MediaPlayer可能会为您完成大部分繁重工作,因此可能不需要这样做。

相关问题