我做了一个小的MP3实例,大部分代码还是参考了网上别人的代码。实现了从网站边下载边播放的功能,其中下载文件的过程是通过
URLConnection mediaCn = new URL(mediaUrl).openConnection();
mediaCn.connect();
InputStream mediaCnStream = mediaCn.getInputStream();
得到网络地址,但是网络地址mediaUrl 是http://192.168.0.100:8080/mp3/a1.mp3 并且将下载的数据存储为.dat文件,使用
FileInputStream fis = new FileInputStream(mediaFile);
mPlayer.reset();
mPlayer.setDataSource(fis.getFD());
//此方法返回与流相关联的文件说明符。
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.prepare();
mPlayer.start();
来播放文件,这里定义了mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
设置播放类型。中间省略了一些边下载边播放的过程细节,既当播放到当前的进度小于文件的当前长度,就暂停播放等待下载,下载成功后继续播放。
我有一个疑问,所谓的android播放流媒体文件不是应该基于RSTP协议的么?这里下载数据的时候使用的网址是HTTP协议,我直接换了协议头为RSTP时提示不支持RSTP协议,android支不支持流媒体的播放啊?我用的android是2.2版本的。 如果支持这个协议,跟我现在通过http下载实现的边播放边下载有什么作用呢,这不是一样可以实现边缓存边播放么?
请大虾们赐教赐教,本人学android猜一个月,很多不懂的地方请指教!
你好,我也正在学习流媒体,能把你的源代码发一份给我吗?谢谢!邮箱:915425504@qq.com
小朋友,不要误导听众了好吗,首先RSTP是协议,URL连接是HTTP协议,自然传入参数会失败,其次你的设计明显有缺陷,对于小米2手机这种只有机身内存,内部文件结构不是FAT32格式的根本就没法播放完全,除非创建和播放大小一样的缓存文件。