如何通过蓝牙按字节块流式传输音频文件以使用ExoPlayer进行即时播放?

时间:2018-10-22 11:45:52

标签: android exoplayer

我能够使2台设备通过RFCOMM通道通过蓝牙进行连接,这两个设备均应用户的要求成为服务器,而用户将连接的设备仍然是服务器,而后者则成为客户端。

基于:https://developer.android.com/guide/topics/connectivity/bluetooth#java

因此,我可以从InputStream / OutputStream读取数据/向其中写入数据,套接字通过自定义协议公开这些数据并与其他设备进行交互,其中第一行是可以执行的操作,而下一行是动作需要的数据。现在,我已经完成了暂停/恢复的功能,接下来我需要将音频文件流式传输到另一个文件。

通过我所见,ExoPlayer仅公开了createMediaSource方法,该方法可以与指向本地文件的Uri结合使用,该方法对本地文件非常适用。

MediaSource mediaSource = factory.createMediaSource(Uri.parse(track.getPath()));

exoPlayer.prepare(mediaSource);

但是我在任何地方都找不到能够提供前向字节块的简单方法,因此,假设一个块是1024字节,每个到达的块,播放器将能够处理并立即回放或缓冲它。

我已经看到一些使用上游类并实现DataSource接口的建议,但是我仍然必须提供Uri,我似乎无法理解如何避免它,一些建议或一些摘要将显示非常感谢您入门。

0 个答案:

没有答案