android开发手记之音乐播放器(二)——播放列表①_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android开发手记之音乐播放器(二)——播放列表①

android开发手记之音乐播放器(二)——播放列表①

 2010/11/19 9:20:04  韶华无限  http://357251206-qq-com.javaeye.com  我要评论(0)
  • 摘要:我的播放器的播放列表没有放在android自带的控件里面,而是放在了自己开发的表格里面,只要把表格加以修饰,可以达到自己想要的效果。本人的播放列表只是从SD卡中获取歌曲的信息(编号,歌曲名称,播放时间),然后放在表格中(一般播放器中的添加删除歌曲,最近播放列表等功能暂且没有做),表格里的内容是从一个二维数组里获取的,因此首先需要得到一个存放歌曲信息的二维数组,数组中包括。这里开发一个PlayerUtil的工具类,代码如下:classPlayerUtil
  • 标签:android开发音乐播放器 播放列表
我的播放器的播放列表没有放在android自带的控件里面,而是放在了自己开发的表格里面,只要把表格加以修饰,可以达到自己想要的效果。本人的播放列表只是从SD卡中获取歌曲的信息(编号,歌曲名称,播放时间),然后放在表格中(一般播放器中的添加删除歌曲,最近播放列表等功能暂且没有做),表格里的内容是从一个二维数组里获取的,因此首先需要得到一个存放歌曲信息的二维数组,数组中包括。
这里开发一个PlayerUtil的工具类,代码如下:
class PlayerUtil {
	static PlayerActivity activity=new PlayerActivity();
	
	//把文件名称放在列表里面的方法
	public static ArrayList<String> musicList(ContentResolver cr,Cursor cursor)
	{
		ArrayList<String> resultList=new ArrayList<String>();
		cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
		if(cursor==null)
		{
			return  resultList;
		}
		else{
			while(cursor.moveToNext())
			{
				String musicName=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
				resultList.add(musicName);
			}
			return  resultList;
		}
		
	}
	//把歌曲时间放在列表里面的方法
	public static ArrayList<String> musicTimeList(ContentResolver cr,Cursor cursor)
	{
		ArrayList<String> resultList=new ArrayList<String>();
		cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
		if(cursor==null)
		{
			return  resultList;
		}
		else{
			while(cursor.moveToNext())
			{
				String musicName=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
				resultList.add(musicName);
			}
			return  resultList;
		}
		
	}
	//把放在arraylist中的歌名放进二维数组中的方法
	public static String[][] musicString(ContentResolver cr,Cursor cursor)
	{
		ArrayList<String> musicName=new ArrayList<String>();
		ArrayList<String> musicTime=new ArrayList<String>();
		musicName=musicList(cr,cursor);//歌曲名字
		musicTime=musicTimeList(cr,cursor);//歌曲时间
		String[][]result=new String[musicName.size()][];
		if(musicName.size()==0)
		{
			return result;
		}
		else
		{
			for(int i=0;i<musicName.size();i++)
			{
				String[]tempCol=new String[3];
				tempCol[0]=(i+1)+"";
				//歌曲名称
				tempCol[1]=musicName.get(i);
				if(tempCol[1].length()>11)
				{
					tempCol[1]=tempCol[1].substring(0,11)+"...";
				}
				//歌曲时间
				if((Integer.parseInt(musicTime.get(i).trim())/1000)%60<10)
				{
					tempCol[2]=Integer.parseInt(musicTime.get(i).trim())/1000/60+":"+"0"+(Integer.parseInt(musicTime.get(i).trim())/1000)%60;
				}
				else{
					tempCol[2]=Integer.parseInt(musicTime.get(i).trim())/1000/60+":"+(Integer.parseInt(musicTime.get(i).trim())/1000)%60;
					}
				result[i]=tempCol;
			}
			return result;
		}
		
		
	}
}

发表评论
用户名: 匿名