android UiAutomator获取视频播放进度的方法
来源:互联网 发布:淘宝网买的学车模拟器 编辑:程序博客网 时间:2024/05/19 23:10
本人在使用android UiAutomator做测试的时候,有时候需要统计视频播进度,然后去断言上传的进度数据正确与否。具体的思路就是根据进度条的颜色区分,我选的红色,然后去计算各个点的数值,然后计算进度的百分比。
这是app的界面进度条的截图
下面是我两次获取到的数据,一个有背景干扰,一个是没有背景干扰。
下面是我的代码:
package student;import java.io.IOException;import java.sql.SQLException;import java.text.ParseException;import java.util.ArrayList;import java.util.List;import com.android.uiautomator.core.UiObjectNotFoundException;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.graphics.Rect;import android.os.RemoteException;import source.UiAutomatorHelper;/*** @author ··-·尘* @E-mail:Fhaohaizi@163.com* @version 创建时间:2017年8月18日 上午10:53:24* @alter 修改时间:2017年9月7日 12:55:36* 类说明:测试调试用例*/@SuppressWarnings("deprecation")public class Student extends StudentCase{public static String jarName,testClass,testName,androidId;public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException, IOException, ParseException {jarName = "DemoStudent";testClass="student.Student";testName="testTest";//PerformanceThread.getInstance().start();//启动线程new UiAutomatorHelper(jarName, testClass, testName);//调试用例//PerformanceThread.key = false;//结束线程}public void testTest() throws InterruptedException, IOException, UiObjectNotFoundException, RemoteException {clickPiont(500, 500);//点击屏幕,显示播放进度条sleep(100);//休眠等待截图Bitmap bitmap = getBitmapByResourceId("com.genshuixue.student:id/view_video_coursede_control_seekbar");//获取播放空间的bitmap实例double percent = getVideoProgress(bitmap);}}下面是获取bitmap的方法
//截取某个控件的图像public Bitmap getBitmapByResourceId(String id) throws UiObjectNotFoundException {Rect rect = getUiObjectByResourceId(id).getVisibleBounds();//获取控件的rect对象String path = screenShot("test");//截图Bitmap bitmap = BitmapFactory.decodeFile(path);//创建并实例化bitmap对象bitmap = Bitmap.createBitmap(bitmap, rect.left, rect.top, rect.width(), rect.height());//截取bitmap实例return bitmap;}下面是获取进度的方法:
//获取视频播放进度条public double getVideoProgress(Bitmap bitmap) {int height = bitmap.getHeight();int width = bitmap.getWidth();List<Integer> date = new ArrayList<Integer>();for (int i = 0;i < width; i++) {int color = bitmap.getPixel(i, height / 2);int red = Color.red(color);//output(red);date.add(red);}int date1 = 0,date2 = 0,date3 = 0,date4 = 0;int status1 = 0,status2 = 0;for (int i = 1;i < date.size() - 1;i++) {if (date.get(i) == 255 && status1 == 0) {status1++;date1 = i;}if (date.get(i) == 238 && status2 == 0) {status2++;date2 = i;}if (date.get(i + 1) < 238 && date.get(i) == 238) {date3 = i;}if (date.get(i + 1) < 165 && date.get(i) == 165) {date4 = i;}}//output(date1, date2, date3, date4);//output((date2 + date3 - date1 * 2.00)/(date4 - date1)/2);return (date2 + date3 - date1 * 2.00)/(date4 - date1)/2;}
末尾宣传一下UiAutomator交流群:
阅读全文
0 0
- android UiAutomator获取视频播放进度的方法
- Android开发播放视频控制进度的控件VideoView
- html5 video获取实时播放进度的方法
- 播放与暂停UIWebView中视频,并获取的长度与播放进度,
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- iOS开发——获取UIWebView中视频的长度与播放进度等信息
- iOS开发——获取UIWebView中视频的长度与播放进度等信息
- iOS开发——获取UIWebView中视频的长度与播放进度等信息
- iOS开发——获取UIWebView中视频的长度与播放进度等信息
- Android 获取视频缩略图的 与播放视频的冲突
- Android 播放视频的四种方法
- Android 视频播放的三种方法
- Android使用VideoView播放视频的方法
- Android多媒体播放之视频播放的方法
- android videoView播放视频,对播放结束的监听方法
- H5 video 标签 播放事件 视频加载完成事件 获取视频播放进度时间
- 播放视频的方法
- OpenCV视频进度播放控制
- oracle检查数据库是否有坏块的命令
- linux下crontab
- 联想 Newifi mini Y1 Padavan固件设置5Ghz桥接
- AI时代将给人来带来的利与弊
- 第7章 Scrapy突破反爬虫的限制
- android UiAutomator获取视频播放进度的方法
- Java 四种线程池的用法分析
- linux export
- 我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人
- PAT 1088. Rational Arithmetic (20) 模块化
- 登录后返回原访问页面
- PHP中的ob_start用法详解
- S3C2440 OpenJtag
- Struts2报错提示:No result defined for action and result invalid.token