天天看點

使用Vitamio打造自己的Android萬能播放器(8)——細節優化

一、更新日志

    1.  新增:顯示SDCard剩餘空間

 如果SD卡容量有限,而且經常使用下載下傳視訊,對剩餘空間比較關注。如圖:

代碼網上找的,也有在項目裡用過的:

    public static String showFileSize(long size) {

        String fileSize;

        if (size < KB)

            fileSize = size + "B";

        else if (size < MB)

            fileSize = String.format("%.1f", size / KB) + "KB";

        else if (size < GB)

            fileSize = String.format("%.1f", size / MB) + "MB";

        else

            fileSize = String.format("%.1f", size / GB) + "GB";

        return fileSize;

    }

    /** 顯示SD卡剩餘空間 */

    public static String showFileAvailable() {

        String result = "";

        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {

            StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getPath());

            long blockSize = sf.getBlockSize();

            long blockCount = sf.getBlockCount();

            long availCount = sf.getAvailableBlocks();

            return showFileSize(availCount * blockSize) + " / " + showFileSize(blockSize * blockCount);

        }

        return result;

    2.  改進:加載網頁時顯示正在加載效果

未改之前每次進入網頁都會空白一片,加載完後才顯示出來,體驗較差。

    3.  改進:線上視訊欄目在多個網站之間切換時後退混亂的問題

未改前使用WebView預設的前進後退功能,使用中發現切換後還是會出現後退混亂的狀況。注意clearHistory不能清除目前的url。

          if (!mHistory.contains(url))

                mHistory.add(0, url);

    4.  新增:顯示正在加載的url

    5.  新增:删除、重命名視訊檔案

基礎功能。

    /** 删除檔案 */

    private void deleteFile(final FileAdapter adapter, final PFile f, final int position) {

        new AlertDialog.Builder(getActivity()).setIcon(android.R.drawable.ic_dialog_alert).setTitle(R.string.file_delete).setMessage(getString(R.string.file_delete_confirm, f.title)).setNegativeButton(android.R.string.yes, new DialogInterface.OnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

                try {

                    File file = new File(f.path);

                    if (file.canRead() && file.exists())

                        file.delete();

                    FileBusiness.deleteFile(getActivity(), f);

                    adapter.delete(position);

                } catch (Exception e) {

                }

            }

        }).setPositiveButton(android.R.string.no, null).show();

    /** 重命名檔案 */

    private void renameFile(final FileAdapter adapter, final PFile f, final int position) {

        final EditText et = new EditText(getActivity());

        et.setText(f.title);

        new AlertDialog.Builder(getActivity()).setTitle(R.string.file_rename).setIcon(android.R.drawable.ic_dialog_info).setView(et).setNegativeButton(android.R.string.yes, new DialogInterface.OnClickListener() {

                String name = et.getText().toString().trim();

                if (name == null || name.trim().equals("") || name.trim().equals(f.title))

                    return;

                    File fromFile = new File(f.path);

                    File nf = new File(fromFile.getParent(), name.trim());

                    if (nf.exists()) {

                        Toast.makeText(getActivity(), R.string.file_rename_exists, Toast.LENGTH_LONG).show();

                    } else if (fromFile.renameTo(nf)) {

                        f.title = name;

                        f.path = nf.getPath();

                        FileBusiness.renameFile(getActivity(), f);

                        adapter.notifyDataSetChanged();

                    }

                } catch (SecurityException se) {

                    Toast.makeText(getActivity(), R.string.file_rename_failed, Toast.LENGTH_LONG).show();

    6.  修正:使用WebView播放視訊時無法關閉的問題

使用浏覽器的flash插件播放視訊時可能會有此問題。

    7.  改進:下載下傳視訊顯示對應視訊标題名稱

未改前下載下傳視訊為一長串數字。

三、下載下傳

    至本章節往後,代碼均不再提供下載下傳,請移步Google Code:

繼續閱讀