Example #1
0
 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);
    }
  }