Android MediaPlayer – 同时重新访问下载和流媒体

之前已经问过这个问题,但现在有了更新版本的 Android(直到Jelly Bean),我想知道是否在同时下载和流式传输文件方面取得了任何进展.从API看,它本身看起来并不可能,因为这些是可用的setDataSource方法
void    setDataSource(String path)
Sets the data source (file-path or http/rtsp URL) to use.
void    setDataSource(Context context,Uri uri,Map<String,String> headers)
Sets the data source as a content Uri.
void    setDataSource(Context context,Uri uri)
Sets the data source as a content Uri.
void    setDataSource(FileDescriptor fd,long offset,long length)
Sets the data source (FileDescriptor) to use.
void    setDataSource(FileDescriptor fd)
Sets the data source (FileDescriptor) to use.

不幸的是,它不接受任何类型的InputStream.有些示例使用旧的NPR代理代码在Android应用程序中打开本地Web服务器,远程下载内容,并将请求的数据输出到任何侦听套接字,但该代码已超过2年,仍然用作标准完成这项任务(即使很多人报告存在口吃问题等).

我已经研究过MediaPlayer类,并希望扩展它以允许这种行为,但是很多实现是通过本机代码完成的,而且根据我的阅读,不同的设备制造商以不同的方式实现本机音频功能(如果是这样的话),我不想碰它!:)).

那么,在不丢弃数据的情况下,从远程服务器存储和并发流式传输音频数据(MP3或OGG)的最佳方法是什么?最好使用Android 2.2及更高版本,但对任何可用API的输入将不胜感激.

解决方法

建立本地代理是您最好的选择.我没有看过NPR的例子,但我做了类似的事情.看我的答案 here.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...