• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 手机影音8--视频播放器的高级功能(1),8--高级功能

手机影音8--视频播放器的高级功能(1),8--高级功能

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了影音先锋视频播放器,暴风影音视频播放器,影音视频播放器,qq影音视频播放器,吉吉影音视频播放器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

手机影音8--视频播放器的高级功能(1),8--高级功能


1.让其他软件能调起自己写的播放器

1.在功能清单文件添加下面的意图

<intent-filter>
	<action android:name="android.intent.action.VIEW" />
	<category android:name="android.intent.category.DEFAULT" />
	<category android:name="android.intent.category.BROWSABLE" />
	<data android:scheme="rtsp" />
 </intent-filter>
 <intent-filter>
	<action android:name="android.intent.action.VIEW" />
	<category android:name="android.intent.category.DEFAULT" />
	<data android:mimeType="video/*" />
	<data android:mimeType="application/sdp" />
 </intent-filter>
 <intent-filter>
	<action android:name="android.intent.action.VIEW" />
	<category android:name="android.intent.category.DEFAULT" />
	<category android:name="android.intent.category.BROWSABLE" />
	<data android:scheme="http" />
	<data android:mimeType="video/mp4" />
	<data android:mimeType="video/3gp" />
	<data android:mimeType="video/3gpp" />
	<data android:mimeType="video/3gpp2" />
 </intent-filter>

2.文件或者图片浏览器 //1.调起系统所有的播放-隐式意图 Intent intent = new Intent(); intent.setDataAndType(Uri.parse("视频播放地址"),"video/*"); context.startActivity(intent);

3.视频播放器就会被调起并且播放

uri = getIntent().getData();//文件夹,图片浏览器,QQ空间

4.设置播放地址

videoview.setVideoURI(uri);


2.播放网络视频时候支持显示缓存进度  

1_支持播放网络视频有缓冲效果

/**
  * 判断是否是网络资源
  * @param uri
  * @return
*/
public boolean isNetUri(Uri uri) {
   boolean result = false;
   if (uri != null) {
	if (uri.toString().contains("http")|| uri.toString().contains("RTSP")|| uri.toString().contains("MMS")) {
	    result = true;
	} else {
	    result = false;
	}
   }
   return result;
}

2_播放网络视频时候支持显示缓存进度

//缓存进度的更新
if (isNetUri) {
	//只有网络资源才有缓存效果
	int buffer = videoview.getBufferPercentage();//0~100
	int totalBuffer = buffer * seekbarVideo.getMax();
	int secondaryProgress = totalBuffer / 100;
	seekbarVideo.setSecondaryProgress(secondaryProgress);
} else {
	//本地视频没有缓冲效果
	seekbarVideo.setSecondaryProgress(0);
}

3.监听卡并且提示&监听拖动完成  

1_监听卡并且提示

<!-- 卡的效果 -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_videobuffer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="#33000000"
    android:visibility="gone"
    android:gravity="center"
    android:orientation="horizontal">

    <ProgressBar
       android:layout_width="30dp"
       android:layout_height="30dp" />

    <TextView
       android:id="@+id/tv_netspeed"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="5dp"
       android:text="网速:20kb/s"
       android:textColor="@android:color/white"
       android:textSize="18sp" />

</LinearLayout>  

代码
在VideoView中定义监听卡方法和监听完成方法

//设置监听卡2.3包括以后的版本才有
videoview.setOnInfoListener(new OnInfoListener() {
       
  @Override
  public boolean onInfo(MediaPlayer mp, int what, int extra) {
     switch (what) {
       case MediaPlayer.MEDIA_INFO_BUFFERING_START://当卡的时候和拖动卡的时候回调
//         Toast.makeText(getApplicationContext(), "视频卡了", 1).show();
            player_buffer.setVisibility(View.VISIBLE);
            isBuffing = true;
            break;
          case MediaPlayer.MEDIA_INFO_BUFFERING_END://当卡的时候和拖动卡结束的时候回调
//         Toast.makeText(getApplicationContext(), "视频不卡了", 1).show();
            player_buffer.setVisibility(View.GONE);
            isBuffing = false;
            break;
          }
          return true;
       }
});

2_自定义监听卡

//监听卡
if (!isUseSystem) {
	if(videoview.isPlaying()){
		int buffer = currentPosition - precurrentPosition;
		if (buffer < 500) {
			//视频卡了
			ll_buffer.setVisibility(View.VISIBLE);
		} else {
			//视频不卡了
			ll_buffer.setVisibility(View.GONE);
		}
	}else{
		ll_buffer.setVisibility(View.GONE);
	}
}

3_监听拖动完成

//设置拖动完成
videoview.setOnSeekCompleteListener(new OnSeekCompleteListener() {
   
   @Override
   public void onSeekComplete(MediaPlayer mp) {
	  if(isBuffing){
		// TODO Auto-generated method stub
		player_buffer.setVisibility(View.GONE);
	  }  
   }
});

百度搜索:android 获取当前网速
http://www.2cto.com/kf/201412/358191.html

/**
 * 得到当前的网速
 *@paramcontext
 *@return
 */
public String getNetSpeed(Context context) {
    long nowTotalRxBytes = TrafficStats.getUidRxBytes(context.getApplicationInfo().uid)==TrafficStats.UNSUPPORTED ? 0 :(TrafficStats.getTotalRxBytes()/1024);//转为KB;
    long nowTimeStamp = System.currentTimeMillis();
    longspeed = ((nowTotalRxBytes - lastTotalRxBytes) *1000 / (nowTimeStamp - lastTimeStamp));//毫秒转换
    lastTimeStamp = nowTimeStamp;
    lastTotalRxBytes = nowTotalRxBytes;
    String speedStr = String.valueOf(speed) + " kb/s";
    return speedStr;
}

  

  

  

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 手机影音8--视频播放器的高级功能(1),8--高级功能
  • 手机影音9--视频播放器的高级功能(2),9--高级功能
  • 手机影音7--视频播放器的基本功能(4),7--基本功能
  • 手机影音5--视频播放器的基本功能(2),5--基本功能
  • 手机影音6--视频播放器的基本功能(3),6--基本功能

相关文章

  • 2017-05-26测试经验总结之--测试员的角色
  • 2017-05-26用户登录(Material Design + Data-Binding + MVP架构模式)实现,data-bindingmvp
  • 2017-05-26Android React-Native系列之(一)零基础搭建React-Native开发环境
  • 2017-05-26深入浅出《Unix环境高级编程》:Unix基础知识(三)
  • 2017-05-26编译android源码6---运行android编译源码
  • 2017-05-26填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试,androidadb
  • 2017-05-26GCM(Google Cloud Messaging)推送完全解析,gcmmessaging
  • 2017-05-26离线用户的灰色头像处理,离线灰色头像
  • 2017-05-26Android学习笔记(31):滚动视图ScrollView浅析
  • 2017-05-26Activity的生命周期,Activity生命周期

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 几种执行shell的方法
    • AppLaunchChecker
    • 仿拉手团购App9-- 产品详情界面,团购app9--
    • 【项目篇】Android团队项目开发之统一代码规范
    • 8.1.1 Android中的13种Drawable小结 Part 1
    • 新闻客户端应用项目源码,客户端项目源码
    • 【android开发笔记】为Button的背景图片添加边框式样式效果,
    • 安卓图片加载之使用universalimageloader加载圆形圆角图片
    • Android点击跳转到淘宝的某一商品详情页或者某一店铺页面,android商品详情
    • 让java程序在后台一直执行(例如putty关闭后后台程序继续运行)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有