我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android 使用Vitamio打造自己的万能播放器(8)——细节优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android 使用Vitamio打造自己的万能播放器(8)——细节优化

前言

  成功的产品往往在细节之处也做到极致,产品和项目从使用的角度来看最大的区别我认为也就是细节的处理上。开播视频的目标是产品,前面7篇文章高歌猛进,添加了很多的功能,也该停下来休整一下,优化一下,也欢迎交流反馈做得不周到的地方。由于开源,大家也可以按照自己的喜好来添加修改不同的功能和细节。

系列

1、Android 使用Vitamio打造自己的万能播放器(1)——准备  

2、Android 使用Vitamio打造自己的万能播放器(2)—— 手势控制亮度、音量、缩放 

3、Android 使用Vitamio打造自己的万能播放器(3)——本地播放(主界面、视频列表) 

4、Android 使用Vitamio打造自己的万能播放器(4)——本地播放(快捷搜索、数据存储)

5、Android 使用Vitamio打造自己的万能播放器(5)——在线播放(播放优酷视频)

6、Android 使用Vitamio打造自己的万能播放器(6)——在线播放(播放列表)

7、Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)

正文

  一、更新日志

    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;
 }
 
 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() {
  @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播放视频时无法关闭的问题

                  使用浏览器的flash插件播放视频时可能会有此问题。

    7.  改进:下载视频显示对应视频标题名称

                   未改前下载视频为一长串数字。

   三、下载 

                   至本章节往后,代码均不再提供下载,请移步Google Code:    

                    http://code.google.com/p/android-oplayer

                    无法访问请尝试地址:https://over140@android-oplayer.googlecode.com/hg/ ,参照这里。

 以上就是对Android Vitamio开发播放器细节优化部分,后续继续补充。

您可能感兴趣的文章:Android 使用Vitamio打造自己的万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)Android 使用Vitamio打造自己的万能播放器(9)—— 在线播放 (在线电视)Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)Android 使用Vitamio打造自己的万能播放器(6)——在线播放(播放列表)Android 使用Vitamio打造自己的万能播放器(5)——在线播放(播放优酷视频)Android 使用Vitamio打造自己的万能播放器(4)——本地播放(快捷搜索、数据存储)Android 使用Vitamio打造自己的万能播放器(3)——本地播放(主界面、播放列表)Android 使用Vitamio打造自己的万能播放器(2)—— 手势控制亮度、音量、缩放Android 使用Vitamio打造自己的万能播放器(1)——准备Android使用vitamio插件实现视频播放器


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android 使用Vitamio打造自己的万能播放器(8)——细节优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android 使用Vitamio打造自己的万能播放器(8)——细节优化

前言成功的产品往往在细节之处也做到极致,产品和项目从使用的角度来看最大的区别我认为也就是细节的处理上。开播视频的目标是产品,前面7篇文章高歌猛进,添加了很多的功能,也该停下来休整一下,优化一下,也欢迎交流反馈做得不周到的地方。由于开源,大家
2022-06-06

Android 使用Vitamio打造自己的万能播放器(1)——准备

前言   虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式、性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的Android万能播放器!
2022-06-06

Android 使用Vitamio打造自己的万能播放器(5)——在线播放(播放优酷视频)

前言为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图、视频时间、尺寸等),跳过直接写在线播放部分的章节。从Vitamio的介绍可以看得出,其支持http、m3u8等多种网络协议,本章将编写播放
2022-06-06

Android 使用Vitamio打造自己的万能播放器(6)——在线播放(播放列表)

前言新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能。本章内容为"在线视频播放列表",集合了主流各大视频网站的手机版,欢迎给"开播视频"
2022-06-06

Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)

前言本章将实现非常实用的功能——下载在线视频。涉及到多线程、线程更新UI等技术,还需思考产品的设计,如何将新加的功能更好的融入到现有的产品中,并不是简单的加一个界面就行了,欢迎大家交流产品设计和技术细节实现!系列1、Android 使用Vi
2022-06-06

Android 使用Vitamio打造自己的万能播放器(9)—— 在线播放 (在线电视)

前言 如果不想自己去找视频看,以传统方式看电视也不错,比如CCTV、湖南卫视等。本章从网络收集几百个电视台的地址,采用多级分类方式呈现,极大丰富在线播放部分的内容。系列 1、Android 使用Vitamio打造自己的万能播放器(1)——
2022-06-06

Android 使用Vitamio打造自己的万能播放器(3)——本地播放(主界面、播放列表)

前言 打造一款完整可用的Android播放器有许多功能和细节需要完成,也涉及到各种丰富的知识和内容,本章将结合Fragment、ViewPager来搭建播放器的主界面,并实现本地播放基本功能。系列文章提供截图、代码说明、源码下载,欢迎交流
2022-06-06

Android 使用Vitamio打造自己的万能播放器(4)——本地播放(快捷搜索、数据存储)

前言关键字:Vitamio、VPlayer、Android播放器、Android影音、Android开源播放器本章节把Android万能播放器本地播放的主要功能(缓存播放列表和A-Z快速查询功能)完成,和播放组件关系不大,但用到一些实用的技
2022-06-06

Android 使用Vitamio打造自己的万能播放器(2)—— 手势控制亮度、音量、缩放

前言本章继续完善播放相关播放器的核心功能,为后续扩展打好基础。系列1、Android 使用Vitamio打造自己的万能播放器(1)——准备 正文 一、实现目标 1.1 亮度控制 模仿VPlayer界面: 1.
2022-06-06

Android 使用Vitamio打造自己的万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)

前言 Vitamio是我们团队的诚意之作,除了要将VPlayer打造成Android最好的播放器,也要将Vitamio打造成Android最好的播放器组件。新版发布内测SDK虽然还有一些问题,但已经具备高可扩展性、便捷性和许多内置实用的功
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录