Android 使用Vitamio打造自己的萬(wàn)能播放器(8)——細(xì)節(jié)優(yōu)化
前言
成功的產(chǎn)品往往在細(xì)節(jié)之處也做到極致,產(chǎn)品和項(xiàng)目從使用的角度來(lái)看最大的區(qū)別我認(rèn)為也就是細(xì)節(jié)的處理上。開(kāi)播視頻的目標(biāo)是產(chǎn)品,前面7篇文章高歌猛進(jìn),添加了很多的功能,也該停下來(lái)休整一下,優(yōu)化一下,也歡迎交流反饋?zhàn)龅貌恢艿降牡胤?。由于開(kāi)源,大家也可以按照自己的喜好來(lái)添加修改不同的功能和細(xì)節(jié)。
系列
1、Android 使用Vitamio打造自己的萬(wàn)能播放器(1)——準(zhǔn)備
2、Android 使用Vitamio打造自己的萬(wàn)能播放器(2)—— 手勢(shì)控制亮度、音量、縮放
3、Android 使用Vitamio打造自己的萬(wàn)能播放器(3)——本地播放(主界面、視頻列表)
4、Android 使用Vitamio打造自己的萬(wàn)能播放器(4)——本地播放(快捷搜索、數(shù)據(jù)存儲(chǔ))
5、Android 使用Vitamio打造自己的萬(wàn)能播放器(5)——在線播放(播放優(yōu)酷視頻)
6、Android 使用Vitamio打造自己的萬(wàn)能播放器(6)——在線播放(播放列表)
7、Android 使用Vitamio打造自己的萬(wàn)能播放器(7)——在線播放(下載視頻)
正文
一、更新日志
1. 新增:顯示SDCard剩余空間
如果SD卡容量有限,而且經(jīng)常使用下載視頻,對(duì)剩余空間比較關(guān)注。如圖:

代碼網(wǎng)上找的,也有在項(xiàng)目里用過(guò)的:
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. 改進(jìn):加載網(wǎng)頁(yè)時(shí)顯示正在加載效果
未改之前每次進(jìn)入網(wǎng)頁(yè)都會(huì)空白一片,加載完后才顯示出來(lái),體驗(yàn)較差。
3. 改進(jìn):在線視頻欄目在多個(gè)網(wǎng)站之間切換時(shí)后退混亂的問(wèn)題
未改前使用WebView默認(rèn)的前進(jìn)后退功能,使用中發(fā)現(xiàn)切換后還是會(huì)出現(xiàn)后退混亂的狀況。注意clearHistory不能清除當(dāng)前的url。修改參照帖子,這里。 注意需要判斷鏈接是否相同,即:
if (!mHistory.contains(url)) mHistory.add(0, url);
4. 新增:顯示正在加載的url

5. 新增:刪除、重命名視頻文件
基礎(chǔ)功能:
/** 刪除文件 */
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() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = et.getText().toString().trim();
if (name == null || name.trim().equals("") || name.trim().equals(f.title))
return;
try {
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();
}
}
}).setPositiveButton(android.R.string.no, null).show();
}
6. 修正:使用WebView播放視頻時(shí)無(wú)法關(guān)閉的問(wèn)題
使用瀏覽器的flash插件播放視頻時(shí)可能會(huì)有此問(wèn)題。
7. 改進(jìn):下載視頻顯示對(duì)應(yīng)視頻標(biāo)題名稱
未改前下載視頻為一長(zhǎng)串?dāng)?shù)字。
三、下載
至本章節(jié)往后,代碼均不再提供下載,請(qǐng)移步Google Code:
http://code.google.com/p/android-oplayer
無(wú)法訪問(wèn)請(qǐng)嘗試地址:https://over140@android-oplayer.googlecode.com/hg/ ,參照這里。
以上就是對(duì)Android Vitamio開(kāi)發(fā)播放器細(xì)節(jié)優(yōu)化部分,后續(xù)繼續(xù)補(bǔ)充。
- Android 使用Vitamio打造自己的萬(wàn)能播放器(10)—— 本地播放 (縮略圖、視頻信息、視頻掃描服務(wù))
- Android 使用Vitamio打造自己的萬(wàn)能播放器(9)—— 在線播放 (在線電視)
- Android 使用Vitamio打造自己的萬(wàn)能播放器(7)——在線播放(下載視頻)
- Android 使用Vitamio打造自己的萬(wàn)能播放器(6)——在線播放(播放列表)
- Android 使用Vitamio打造自己的萬(wàn)能播放器(5)——在線播放(播放優(yōu)酷視頻)
- Android 使用Vitamio打造自己的萬(wàn)能播放器(4)——本地播放(快捷搜索、數(shù)據(jù)存儲(chǔ))
- Android 使用Vitamio打造自己的萬(wàn)能播放器(3)——本地播放(主界面、播放列表)
- Android 使用Vitamio打造自己的萬(wàn)能播放器(2)—— 手勢(shì)控制亮度、音量、縮放
- Android 使用Vitamio打造自己的萬(wàn)能播放器(1)——準(zhǔn)備
- Android使用vitamio插件實(shí)現(xiàn)視頻播放器
相關(guān)文章
Android?Studio實(shí)現(xiàn)簡(jiǎn)單頁(yè)面跳轉(zhuǎn)的詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于Android?Studio實(shí)現(xiàn)簡(jiǎn)單頁(yè)面跳轉(zhuǎn)的詳細(xì)教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Android?Studio具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01
Android實(shí)現(xiàn)橫向滑動(dòng)卡片效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)橫向滑動(dòng)卡片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Android自定義橫向滑動(dòng)菜單的實(shí)現(xiàn)
這篇文章主要介紹了Android自定義橫向滑動(dòng)菜單的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Android 簡(jiǎn)單實(shí)現(xiàn)倒計(jì)時(shí)功能
在 Android 中倒計(jì)時(shí)功能是比較常用的一個(gè)功能,比如短信驗(yàn)證碼,付款倒計(jì)時(shí)等。今天小編給大家分享Android 簡(jiǎn)單實(shí)現(xiàn)倒計(jì)時(shí)功能,感興趣的朋友一起看看吧2019-12-12
Android App實(shí)現(xiàn)應(yīng)用內(nèi)部自動(dòng)更新的最基本方法示例
這篇文章主要介紹了實(shí)現(xiàn)Android App內(nèi)部自動(dòng)更新的最基本方法示例,包括IIS服務(wù)器端的簡(jiǎn)單布置,需要的朋友可以參考下2016-03-03
Android 第三方應(yīng)用接入微信平臺(tái)研究情況分享(一)
微信平臺(tái)開(kāi)放后倒是挺火的,許多第三方應(yīng)用都想試下接入微信這個(gè)平臺(tái),畢竟可以利用微信建立起來(lái)的關(guān)系鏈來(lái)拓展自己的應(yīng)用還是挺不錯(cuò)的 最近由于實(shí)習(xí)需要也在研究這個(gè)東西,這里把我的整個(gè)研究情況給出來(lái)2013-01-01
Android自定義View之簡(jiǎn)約風(fēng)歌詞控件實(shí)戰(zhàn)指南
一些接觸Android不久的朋友對(duì)自定義View都有一絲畏懼感,總感覺(jué)這是一個(gè)比較高級(jí)的技術(shù),但其實(shí)自定義View并不復(fù)雜,有時(shí)候只需要簡(jiǎn)單幾行代碼就可以完成了,這篇文章主要給大家介紹了關(guān)于Android自定義View之簡(jiǎn)約風(fēng)歌詞控件的相關(guān)資料,需要的朋友可以參考下2021-07-07
使用SurfaceView實(shí)現(xiàn)視頻彈幕
這篇文章主要為大家詳細(xì)介紹了使用SurfaceView實(shí)現(xiàn)視頻彈幕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android實(shí)現(xiàn)掃一掃識(shí)別數(shù)字功能
這篇文章主要介紹了Android實(shí)現(xiàn)掃一掃識(shí)別數(shù)字功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-09-09
Android 中Failed to read key from keystore解決辦法
這篇文章主要介紹了Android 中Failed to read key from keystore解決辦法的相關(guān)資料,希望通過(guò)本能幫助到大家,需要的朋友可以參考下2017-09-09

