private void openSuccess() { mInitialized = true; if (!mFromNotification && mSeekTo > 0 && mSeekTo < 1) seekTo(mSeekTo); mSeekTo = -1; mListener.onOpenSuccess(); if (!mFromNotification) { setSubEncoding(VP.DEFAULT_SUB_ENCODING); if (mUri != null) mSubPaths = getSubFiles(mUri.getPath()); if (mSubPaths != null) setSubPath(FileUtils.getCanonical(new File(mSubPaths[0]))); setSubShown(VP.DEFAULT_SUB_SHOWN); } }
/** 递归查找视频 */ private void eachAllMedias(File f) { if (f != null && f.exists() && f.isDirectory()) { File[] files = f.listFiles(); if (files != null) { for (File file : f.listFiles()) { // Logger.i(f.getAbsolutePath()); if (file.isDirectory()) { // 忽略.开头的文件夹 if (!file.getAbsolutePath().startsWith(".")) eachAllMedias(file); } else if (file.exists() && file.canRead() && FileUtils.isVideo(file)) { save(new POMedia(file)); } } } } }
/** * 保存入库 * * @throws FileNotFoundException */ private void save(POMedia media) { mDbWhere.put("path", media.path); mDbWhere.put("last_modify_time", media.last_modify_time); // 检测 if (!mDbHelper.exists(media, mDbWhere)) { try { if (media.title != null && media.title.length() > 0) media.title_key = PinyinUtils.chineneToSpell(media.title.charAt(0) + ""); } catch (Exception ex) { Logger.e(ex); } media.last_access_time = System.currentTimeMillis(); // 提取缩略图 // extractThumbnail(media); media.mime_type = FileUtils.getMimeType(media.path); // 入库 mDbHelper.create(media); // 扫描到一个 notifyObservers(SCAN_STATUS_RUNNING, media); } }