下载文件:
主要是打开一个URL的INPUTSTREAM,还有一个本地文件OUTPUTSTREAM,然后就读一段写进去一段.是另外启了个线程进行的
主要代码如下:
URL url=null;
URLConnection conn=null;
InputStream is=null;
OutputStream os=null;
try {
url=new URL(getUrl());
conn=url.openConnection();
file_size=conn.getContentLength()+"";
cur_size="0";
updateRecord();
is=conn.getInputStream();
os=new FileOutputStream(save_path+save_name);
byte[] buffer=new byte[4096];
int ct=is.read(buffer);
int iCur=Integer.parseInt(cur_size);
while(ct>-1 && "1".equals(state)){
Log.v("downloadFilePo", "download "+ct+" bytes");
os.write(buffer, 0, ct);
iCur+=ct;
cur_size=iCur+"";
ct=is.read(buffer);
}
is.close();
os.close();
另外还有断点下载,主要实现原理就是记录下上次下载到哪个字节,然后打开URL的输入流时
conn.setRequestProperty("User-Agent", "NetFox");
conn.setRequestProperty("RANGE", "bytes="+getCur_size()+"-");
表示从getCur_size()个字符开始发送数据.
即可.
顺便做了个页面来管理所有下载的内容,
这里使用的是listview,每一个格子是个自定义的VIEW.
更新UI的时候有个问题,就是只能在UI主线程中更新,所以在自定义的VIEW中定义了一个handler,新启动一个线程轮询,然后handler.sendMessage();
音乐播放:
播放本地文件的话没有问题,直接set好path后 prepare(),再start().
对于网上的音乐的话,边播放边下载时有点问题.我想到的方法是另起个线程下载音乐文件,一开始先缓冲一段数据,开始播放.
实现MediaPlayer的OnCompletion方法,表示在音乐播放完成后做出动作,因为是边播放边下载,所以第一次所加载的很快就会播放完,
mp.setOnCompletionListener(this);
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
Log.v(tag, "onCompletion");
if(goon){
resetDataSource();
}
}
public void resetDataSource()
{
try {
int cur=mp.getCurrentPosition();
mp.reset();
mp.setDataSource(path);
mp.prepare();
mp.seekTo(cur);
mp.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这种方法的话由于prepare()耗费资源过大,播放会卡一下.
不知道哪位知道除了直接给Mediaplayer设置网络url的方法以外边下载边播放的方法
- 大小: 40.5 KB
分享到:
相关推荐
在无声音乐播放的保活策略中,开发者会创建一个音乐播放服务,加载一个无声的音频文件(例如纯静音或极低音量的音乐),然后无限循环播放。由于Android系统为了保证用户体验,会优先处理媒体播放相关的服务,因此...
本项目是一个基于Android Studio(AS)的音乐播放器,提供了音乐播放页面,支持本地音乐播放和网络音乐搜索功能。下面我们将深入探讨这个项目中的关键知识点。 1. **Android Studio开发环境**:Android Studio是...
音乐播放部分,我们可以使用Android的MediaPlayer类。初始化MediaPlayer时,我们通常会设置一个DataSource,这可以是本地文件路径或者网络流URL。对于边下边播,我们需要将正在下载的临时文件路径作为DataSource。...
5. **文件遍历与选择**:为了找到并播放本地音乐,源码可能包含了读取设备存储上的音乐文件(通常位于外部存储的Music目录),这需要使用到文件I/O操作和文件遍历的技巧。 6. **ListView或RecyclerView**:为了展示...
在Android中,音乐播放的核心是音频处理。Android提供了多种音频API,如MediaPlayer、AudioTrack和OpenSL ES。MediaPlayer是常用的音频播放组件,适用于本地和网络音频资源,它支持多种音频格式,如MP3、AAC等。...
通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...
可以创建一个定时器,定期更新歌词显示,确保与音乐播放进度同步。 3. **进度条显示**: 进度条通常由`SeekBar`控件实现,它允许用户手动调整播放进度。我们需要监听`MediaPlayer`的播放状态,实时更新`SeekBar`的...
实现一个运行于Android平台的音乐播放器,可以列出SD卡上的所有歌曲,并实现简单的播放、暂停、切歌以及设置等功能。 1. 加载本地歌曲 通过列表形式将本地歌曲列出,显示简要信息,如歌名、歌手。 2. 播放控制 ...
在Android平台上,开发一款应用程序来实现音乐播放功能是一项常见的任务。`Service`是Android系统中的一个关键组件,它允许开发者在后台执行长时间运行的操作,即使用户离开了应用界面,服务仍可继续工作。在这个...
- **网络通信**:系统应当具备与远程服务器通信的能力,以便下载音乐文件或更新音乐信息。 ### 结论 本文介绍的基于Android与JAVA的音乐在线分类管理与播放系统,结合了移动设备的便捷性和互联网技术的丰富性,...
在Android平台上开发一款音乐播放器,支持多线程断点续传下载以及在线播放功能,是提高用户体验的...通过研究这个源码,开发者可以深入理解这些技术,并应用于自己的项目中,实现更高效、更稳定的音乐播放和下载功能。
在Android开发中,实现多线程文件下载、在线音乐播放以及清除下载文件是常见的功能需求。下面我们将逐一探讨这些知识点。 1. **Android多线程下载** 在Android中,由于主线程(UI线程)不能执行耗时操作,因此在...
8. **事件监听与回调**:在App中,音乐播放、下载状态等事件的监听与回调机制是必要的,例如,当音乐播放结束时触发下一个歌曲的加载,或下载完成时通知用户。 9. **权限管理**:Android 6.0及以上版本引入了运行时...
`AsyncTask`或者`Handler`/`Looper`机制可能被用来实现异步操作,确保音乐播放与用户交互流畅。 5. **服务(Service)**:为了在后台持续播放音乐,源码可能会使用`Service`。`IntentService`或自定义`Service`可以...
【Android在线音乐播放器】是一个基于Android平台的小型应用程序,旨在提供流媒体音乐播放功能,让用户可以在不下载音乐文件的情况下在线享受音乐。这个项目对于学习Android应用开发,特别是音乐播放功能的实现,...
在Android应用开发中,实现“多线程断点续传下载+在线播放音乐”涉及到多个关键技术,...通过以上技术的综合运用,我们可以构建出一个功能完善的Android应用,实现高效的多线程断点续传下载和流畅的在线音乐播放体验。
1. 如果音乐资源在线,需使用HttpURLConnection或OkHttp等库进行网络请求,下载音乐文件。 2. RESTful API交互:设计合理的API接口,如登录注册API、获取音乐列表API,使用JSON格式传输数据。 【数据存储】 1. ...
本项目是基于Android开发的音乐播放器设计源码,...该音乐播放器提供了音乐播放、音乐列表浏览、音乐搜索等功能,支持多种音乐格式。项目结构清晰,代码注释详尽,适合用于学习和研究Android在音乐播放器开发中的应用。
【Android Studio开发的音乐播放器】是一个基于Android Studio平台创建的简单音乐播放应用程序。这个项目展示了如何在Android环境中实现音乐播放功能,尽管它的界面设计还有待改进,但基本的音乐播放控制已经完成,...
本项目“基于Eclipse的Android音乐播放器”提供了一个完整的示例,展示了如何在Eclipse中构建一个功能完备的音乐播放应用。 1. **Android SDK和Eclipse集成** 在开始开发之前,开发者需要安装Android SDK并配置...