`
qdgyj
  • 浏览: 8938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于ANDROID下载与音乐播放

阅读更多
下载文件:
主要是打开一个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
分享到:
评论
1 楼 kkvsyy 2011-06-02  
学习学习学习学习

相关推荐

    Android保活之循环播放无声音乐

    在无声音乐播放的保活策略中,开发者会创建一个音乐播放服务,加载一个无声的音频文件(例如纯静音或极低音量的音乐),然后无限循环播放。由于Android系统为了保证用户体验,会优先处理媒体播放相关的服务,因此...

    Android AS开发的音乐播放器 有音乐播放页面 本地音乐 和网络搜索

    本项目是一个基于Android Studio(AS)的音乐播放器,提供了音乐播放页面,支持本地音乐播放和网络音乐搜索功能。下面我们将深入探讨这个项目中的关键知识点。 1. **Android Studio开发环境**:Android Studio是...

    android边下载边播放音乐,有播放进度和缓冲效果

    音乐播放部分,我们可以使用Android的MediaPlayer类。初始化MediaPlayer时,我们通常会设置一个DataSource,这可以是本地文件路径或者网络流URL。对于边下边播,我们需要将正在下载的临时文件路径作为DataSource。...

    Android简易本地音乐播放器源码,基于Android的简易本地音乐播放器源码

    5. **文件遍历与选择**:为了找到并播放本地音乐,源码可能包含了读取设备存储上的音乐文件(通常位于外部存储的Music目录),这需要使用到文件I/O操作和文件遍历的技巧。 6. **ListView或RecyclerView**:为了展示...

    Android音乐播放器,本地播放,网络播放

    在Android中,音乐播放的核心是音频处理。Android提供了多种音频API,如MediaPlayer、AudioTrack和OpenSL ES。MediaPlayer是常用的音频播放组件,适用于本地和网络音频资源,它支持多种音频格式,如MP3、AAC等。...

    基于Android Studio开发的音乐播放器APP源码Android 音乐播放器源码

    通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...

    Android播放音乐APP

    可以创建一个定时器,定期更新歌词显示,确保与音乐播放进度同步。 3. **进度条显示**: 进度条通常由`SeekBar`控件实现,它允许用户手动调整播放进度。我们需要监听`MediaPlayer`的播放状态,实时更新`SeekBar`的...

    Android实现音乐播放.zip

    实现一个运行于Android平台的音乐播放器,可以列出SD卡上的所有歌曲,并实现简单的播放、暂停、切歌以及设置等功能。 1. 加载本地歌曲 通过列表形式将本地歌曲列出,显示简要信息,如歌名、歌手。 2. 播放控制 ...

    Android使用Service播放音乐

    在Android平台上,开发一款应用程序来实现音乐播放功能是一项常见的任务。`Service`是Android系统中的一个关键组件,它允许开发者在后台执行长时间运行的操作,即使用户离开了应用界面,服务仍可继续工作。在这个...

    基于Android与JAVA的音乐在线分类管理与播放系统研究.pdf

    - **网络通信**:系统应当具备与远程服务器通信的能力,以便下载音乐文件或更新音乐信息。 ### 结论 本文介绍的基于Android与JAVA的音乐在线分类管理与播放系统,结合了移动设备的便捷性和互联网技术的丰富性,...

    android 音乐播放器多线程断点续传下载+在线播放音乐

    在Android平台上开发一款音乐播放器,支持多线程断点续传下载以及在线播放功能,是提高用户体验的...通过研究这个源码,开发者可以深入理解这些技术,并应用于自己的项目中,实现更高效、更稳定的音乐播放和下载功能。

    Android实例:多线程文件下载+在线音乐播放+清除下载文件

    在Android开发中,实现多线程文件下载、在线音乐播放以及清除下载文件是常见的功能需求。下面我们将逐一探讨这些知识点。 1. **Android多线程下载** 在Android中,由于主线程(UI线程)不能执行耗时操作,因此在...

    基于百度音乐Api的Android高仿音乐播放App可在线试听下载歌词浏览

    8. **事件监听与回调**:在App中,音乐播放、下载状态等事件的监听与回调机制是必要的,例如,当音乐播放结束时触发下一个歌曲的加载,或下载完成时通知用户。 9. **权限管理**:Android 6.0及以上版本引入了运行时...

    android 音乐播放器源码下载

    `AsyncTask`或者`Handler`/`Looper`机制可能被用来实现异步操作,确保音乐播放与用户交互流畅。 5. **服务(Service)**:为了在后台持续播放音乐,源码可能会使用`Service`。`IntentService`或自定义`Service`可以...

    Android在线音乐播放器

    【Android在线音乐播放器】是一个基于Android平台的小型应用程序,旨在提供流媒体音乐播放功能,让用户可以在不下载音乐文件的情况下在线享受音乐。这个项目对于学习Android应用开发,特别是音乐播放功能的实现,...

    Android多线程断点续传下载+在线播放音乐

    在Android应用开发中,实现“多线程断点续传下载+在线播放音乐”涉及到多个关键技术,...通过以上技术的综合运用,我们可以构建出一个功能完善的Android应用,实现高效的多线程断点续传下载和流畅的在线音乐播放体验。

    简单的Android音乐播放器

    1. 如果音乐资源在线,需使用HttpURLConnection或OkHttp等库进行网络请求,下载音乐文件。 2. RESTful API交互:设计合理的API接口,如登录注册API、获取音乐列表API,使用JSON格式传输数据。 【数据存储】 1. ...

    基于Android的音乐播放器设计源码

    本项目是基于Android开发的音乐播放器设计源码,...该音乐播放器提供了音乐播放、音乐列表浏览、音乐搜索等功能,支持多种音乐格式。项目结构清晰,代码注释详尽,适合用于学习和研究Android在音乐播放器开发中的应用。

    Android studio开发的音乐播放器.zip

    【Android Studio开发的音乐播放器】是一个基于Android Studio平台创建的简单音乐播放应用程序。这个项目展示了如何在Android环境中实现音乐播放功能,尽管它的界面设计还有待改进,但基本的音乐播放控制已经完成,...

    基于Eclipse的Android音乐播放器.rar

    本项目“基于Eclipse的Android音乐播放器”提供了一个完整的示例,展示了如何在Eclipse中构建一个功能完备的音乐播放应用。 1. **Android SDK和Eclipse集成** 在开始开发之前,开发者需要安装Android SDK并配置...

Global site tag (gtag.js) - Google Analytics