dzwillpower
10/11/2013 - 9:38 AM

扫描外接设备

扫描外接设备

public HashMap<String, List<VideoInfo>> scanDirectory(File path,HashMap<String, List<VideoInfo>> videoHashMap) {
      
		if(videoHashMap==null){
			videoHashMap= new HashMap<String, List<VideoInfo>>();
		}
		if( path.exists() ) {
			List<VideoInfo>  mVideoFile=new ArrayList<VideoInfo>();
			File[] files = path.listFiles();
			if (files == null) {
				return null;
			}
			for(int i=0; i<files.length; i++) {
				if(files[i].isDirectory()) {
					scanDirectory(files[i],videoHashMap);
				}
				else {
					String extension = FileUtils.getExtension(files[i].getName());
					String mimeTypeString = null;
					try {
						if(!TextUtils.isEmpty(extension)){
							 mimeTypeString = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.substring(1));
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
					if( mimeTypeString !=null && mimeTypeString.startsWith("video")){
						VideoInfo videoInfo = new VideoInfo();
						videoInfo.setDisPlayName(files[i].getName());
						videoInfo.setFilePath(files[i].getAbsolutePath());
						videoInfo.setMimeType(mimeTypeString);
						videoInfo.setData(files[i].getAbsolutePath());
						mVideoFile.add(videoInfo);
					}
				}
			}
			if(mVideoFile.size()>0){
				folderNames.add(path.getPath());
				videoHashMap.put(path.getPath(), mVideoFile);
			}
		}
		return videoHashMap;
	}
public HashMap<String, List<PictureInfo>> scanDirectory(File path, HashMap<String, List<PictureInfo>> pictureHashMap) {

  	if (pictureHashMap == null) {
			pictureHashMap = new HashMap<String, List<PictureInfo>>();
		}
		if (path.exists()) {
			List<PictureInfo> mPicFile = new ArrayList<PictureInfo>();
			File[] files = path.listFiles();
			if (files == null) {
				return null;
			}
			for (int i = 0; i < files.length; i++) {
				if (files[i].isDirectory()) {
					scanDirectory(files[i], pictureHashMap);
				} else {
					String extension = FileUtils.getExtension(files[i].getName());
					String mimeTypeString = null;
					try {
						if (!TextUtils.isEmpty(extension)) {
							mimeTypeString = MimeTypeMap.getSingleton()
									.getMimeTypeFromExtension(extension.substring(1));
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
					if (mimeTypeString != null && mimeTypeString.startsWith("image")) {
						PictureInfo pictureInfo = new PictureInfo();
						pictureInfo.setDisPlayName(files[i].getName());
						pictureInfo.setFilePath(files[i].getAbsolutePath());
						pictureInfo.setMimeType(mimeTypeString);
						mPicFile.add(pictureInfo);
						allPicturePaths.add(files[i].getAbsolutePath());
					}
				}
			}
			if (mPicFile.size() > 0) {
				folderNames.add(path.getPath());
				pictureHashMap.put(path.getPath(), mPicFile);
			}
		}
		return pictureHashMap;
	}
public HashMap<String, List<MusicInfo>> scanDirectory(File path, HashMap<String, List<MusicInfo>> musicHashMap) {
  	if (musicHashMap == null) {
			musicHashMap = new HashMap<String, List<MusicInfo>>();
		}
		if (path.exists()) {
			File[] files = path.listFiles();
			if (files == null) {
				return null;
			}
			for (int i = 0; i < files.length; i++) {
				if (files[i].isDirectory()) {
					scanDirectory(files[i], musicHashMap);
				} else {
					String extension = FileUtils.getExtension(files[i].getName());
					String mimeTypeString = null;
					try {
						if (!TextUtils.isEmpty(extension)) {
							mimeTypeString = MimeTypeMap.getSingleton()
									.getMimeTypeFromExtension(extension.substring(1));
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
					if (mimeTypeString != null && mimeTypeString.startsWith("audio")) {
						MediaMetadataRetriever mmr = new MediaMetadataRetriever();
						mmr.setDataSource(files[i].getAbsolutePath());
						MusicInfo musicInfo = new MusicInfo();
						musicInfo.setDisPlayName(files[i].getName());
						musicInfo.setData(files[i].getAbsolutePath());
						musicInfo.setMimeType(mimeTypeString);
						musicInfo.setMusicArtist(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST));
						musicInfo.setDuration(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
						musicInfo.setMusicAlbum(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM));
						if(musicInfo.getMusicAlbum()==null){
							continue;
						}
						if(musicHashMap.get(musicInfo.getMusicAlbum())==null){
							musicHashMap.put(musicInfo.getMusicAlbum(), new ArrayList<MusicInfo>());
							albumNames.add(musicInfo.getMusicAlbum());
						}
//						MyLogger.dLog().e("***********> "+musicInfo.getDisPlayName()+"***********"+musicInfo.getMusicAlbum());
						musicHashMap.get(musicInfo.getMusicAlbum()).add(musicInfo);
					}
				}
			}

		}
		return musicHashMap;
	}