autojs刷网课之一、刷视频篇

本程序还有许多需要改进的地方,希望路过的各位大佬不吝赐教,感谢!

背景:网课,2021春,形式与政策Ⅱ,知到app

  • 功能:
    • 定时打开app
    • 跳过广告
    • 播放形式与政策
    • 1.5倍速
    • 自动关闭弹题
    • 连播三个视频后自动退出

准备:vivo手机(Android 7以上),autojs 4.1.2,vs code

个人背景:本人大三,在学习大二的计算机课程,只学过c和c++(所以用其他语言肯定有许多不规范的地方,感谢雅正!)

最近接触了autojs(javaScript),虽然没学过javaScript,但是庆幸的是基本可以用c/c++的知识写js。

相关说明

  1. 本学期课程设学习习惯分 ,需要有五天学习时间(看视频,不包括见面课)超过25min,一定不要一下刷完!
  2. 本人水平十分有限,都是基于兴趣进行相关学习,所以程序不会十分完善,只达到自用的程度 ,使用博客记录过程,一方面反思进步,另一方面希望能和你们互惠互助,共同进步。
  3. 本程序分为两部分,此篇为第一部分,实现了刷视频的功能,第二部分为自动答题篇;
  4. 功能流程 :使用autojs自带的定时(时灵时不灵),息屏时亮屏并解锁(上滑,6位数字密码),打开app,跳过广告,点击学习,点击形式与政策,点击继续学习,点击继续播放,放大,1.25x,1.5x,循环检测弹题,有题就选择A并关闭(未选就不能关闭),循环检测是否是下一个视频(自动播放下个视频的时候下边那个控制栏会出现,倍速会变为1.0x,检测到1.0x就点击两下变为1.5x,所以放大4次就表示看到第四个视频了(三个视频是为了凑够25min),就自动退出app;
  5. 关于第二部分的自动答题,其实章节课后题总共就8章×5=40道题,网上也很容易查到答案,但是本人是为了锻炼对autojs的使用,同时为另一个答题做准备,所以才写的,第二部分涉及了三个方面 1.使用python爬取答案,写入文档制作题库 2.使用python将txt文件的问题和答案变为json键值对格式 3.获取页面文字,匹配键值,获取答案,自动答题,有兴趣的可以继续关注;
  6. 之后应该会写爬网页,企业微信每日上报,定时抢购,stm32,ss答题等,时间不定,先挖个坑;
  7. 新手上路,请多 点赞 收藏 关注十分感谢

1.息屏状态下亮屏

     while (!device.isScreenOn()) {
         device.wakeUp();
         sleep(500)
	     swipe(700, 1900, 700, 450, 300);//上滑
	     sleep(400);
	     //解锁 密码123456
	     desc(1).findOne().click();
	     desc(2).findOne().click();
	     desc(3).findOne().click();
	     desc(4).findOne().click();
	     desc(5).findOne().click();
	     desc(6).findOne().click();
	     sleep(400);
     }

2.设置悬浮窗

	var w = floaty.rawWindow(
	    <frame gravity="center" bg="#CC999999">
	        <text padding="5 0 5 0" w="auto" h="auto" id="text" textColor='#FFFFFF'></text>
	    </frame>
	);
	w.setPosition(150, 5);
	w.setTouchable(false);
	ui.run(function(){
	    w.text.setText("开始刷课");
	});

3.打开app,跳过广告,点击相关课程

	while(currentPackage().search(/wisdomtree/i)==-1){ //如果没有找到任何匹配的子串,则返回 -1。
	    launchApp("知到");
	    ui.run(function(){
		    w.text.setText("正在打开知到");
		});
	    sleep(1000);
	}
	if(id('tv_skip').findOne().click()){
	    ui.run(function(){
	    	w.text.setText('跳过广告');
		});
	    sleep(500);
	}
	
	var widget = text("学习").findOne();
	//获取其中心位置并点击
	click(widget.bounds().centerX()+random(0, 10), widget.bounds().centerY()-40);
    ui.run(function(){
	    w.text.setText('点击学习')
	});
    sleep(4000); 
    
    if(id('rl_credit_all_info').findOne().click()){
        ui.run(function(){
		    w.text.setText('点击形式与政策');
		});
		sleep(2000);
    }
    id("continue_study_btn").findOne().click();
    sleep(500);
    click(600, 600);
    ui.run(function(){
        w.text.setText('继续播放');
    });
    sleep(1000);
    
    var number = 0
    device.setMusicVolume(device.getMusicMaxVolume() / 100 * number)
    
    click(800, 800);sleep(500);
    click(1000, 800);
    ui.run(function(){
        w.text.setText('放大');
    });

4.弹题与倍速

/*思路:
问题一:弹题
    一直检测,是否有题,有题就答

问题二:怎么调第二次倍速
    1.间隔时间段后检测倍速
    2.不调倍速

问题三:怎么判断三个视频播放完毕
    第四次调倍速就退出脚本
*/ 
	n=1;t=0;
	while(true){
	    if(text('A').findOnce()) {
		    sleep(500)
		    click("A");
		    sleep(1000) 
		    click("关闭")
		    sleep(1000)
		    toast('关闭'+ n +'个弹题');
		    n=n+1;
	    }
	    if(text('1.0x').findOnce()) {
	        click("1.0x")
	        t+=1;
	        sleep(500);
	        click("1.25x");sleep(500);  
	        ui.run(function(){
	        	w.text.setText('第'+ t +'个视频');  
	        }); 
	    }
	    //if(t == 3) 。。。
	}

5.结束视频

	    if(t == 4) {
	      	if(id('ijk_layout_controller_cover_play_layout').findOnce().click()){
	             ui.run(function(){
               	 	w.text.setText('3个视频播放完毕,已暂停');
           		 });
	        }
	  
           	back()
            sleep(500);
            back()
            sleep(500);
            if(id('positiveButton').text("确定").findOnce()){
                log('确定退出');
                click("确定")
            }
	        back()
	        sleep(500);
	        back()
	        sleep(500);
	        home()
	        exit()
        }

总结

写东西果然很难啊,特别是码代码的习惯特别不好,导致整理的时候要花费很长时间,注释也懒得写了,感觉都是很简单的语句,看不懂就看功能流程哈,再看不懂就评论,我看到就会回复的。
全部代码在gitee,点这里跳转

坚持就是胜利!

### 回答1: 学习通手机上刷网课app是一种方便快捷的学习方式。我们可以利用学习通手机app随时随地学习课程,无需受限于时间和地点。该app提供了丰富的教育资源,包括课件、讲义、练习题等,帮助我们更好地掌握知识。 首先,学习通手机app为我们提供了多样化的学习内容。我们可以根据自己的需要选择感兴趣的课程进行学习,可以针对自己的学习进度自由安排学习时间。这样一来,我们可以更好地组织学习计划,提高学习效率。 其次,学习通手机app的使用非常简单。我们只需下载并登录该app,就可以轻松浏览、观看课程视频,完成课后练习等。而且该app还提供了在线答疑功能,方便我们在学习过程中遇到问题时及时得到解答。这样一来,我们能够更好地理解和掌握所学知识。 另外,学习通手机app还可以帮助我们进行学习记录和评估。它会记录我们的学习过程和成绩,方便我们随时查看自己的学习情况。我们可以通过这些学习记录来评估自己的学习效果,从而及时调整学习方法和策略。 综上所述,学习通手机上刷网课app是一种非常实用和便捷的学习方式。它为我们提供了多样的学习内容,简化了学习流程,帮助我们提高学习效率和成果。通过学习通手机app,我们可以随时随地进行学习,助力我们更好地发展个人学习能力。 ### 回答2: 学习通手机上刷网课app是一种方便快捷的学习方式。随着手机的普及和网络的发展,越来越多的人选择使用手机来学习。学习通手机上刷网课app可以随时随地进行学习,不再受到时间和空间的限制。 首先,学习通手机上刷网课app提供了大量的学习资源。我们可以通过手机上的app来学习各种各样的课程,包括语言、数学、科学等等。这些课程内容丰富,有助于我们提升自己的知识水平。 其次,学习通手机上刷网课app具有灵活性。因为手机可以随身携带,我们可以随时随地进行学习。不管是在家里、在学校、在公共交通工具上,或是在休息时,我们都可以利用碎片化的时间来学习。这种灵活性使得学习更加高效和便捷。 此外,学习通手机上刷网课app还提供了互动性的学习方式。我们可以通过手机上的app跟老师和其他学生进行交流和讨论,共同学习和进步。这种互动性能够激发我们的学习兴趣和积极性,同时也为我们提供了更多的学习资源和帮助。 总的来说,学习通手机上刷网课app是一种优质的学习方式。它提供了丰富的学习资源,具有灵活性和互动性,能够帮助我们更好地提高自己的知识水平。通过使用学习通手机上刷网课app,我们可以以自己的节奏和方式进行学习,实现个人的学习目标。 ### 回答3: 学习通手机上刷网课app是指通过学习通手机应用程序来观看和学习网络课程。在现代社会中,移动互联网的普及和发展,使得人们可以随时随地通过手机来学习知识。 学习通手机上刷网课app有以下几个优点。首先,它提供了方便快捷的学习方式。只要下载安装该应用程序,学生可以在任何时间、任何地点,利用碎片时间进行学习,极大地提高了学习效率。其次,学习通手机上刷网课app提供了丰富的学习资源。通过该应用程序,学生可以轻松地观看和学习各种不同学科的网课,涵盖了从小学到高中甚至大学不同层次的知识点。同时,学习通手机上刷网课app还提供了在线答疑、作业提交、考试练习等功能,为学生提供了全方位的学习帮助。 然而,学习通手机上刷网课app也存在一些劣势。首先,长时间使用手机可能对视力和身体健康产生一定影响,需要适当控制使用时间和休息。其次,学习通手机上刷网课app仍然需要网络连接,如果网络信号不稳定,可能会影响学习的效果。另外,对于一些需要实践操作和互动的课程,仅仅通过手机可能无法完全满足学生的学习需求。 总而言之,学习通手机上刷网课app为学生提供了便捷的学习方式和丰富的学习资源,可以帮助学生随时随地进行学习。然而,我们仍然需要合理使用手机,充分利用其优点,同时注意保护视力和身体健康。同时,对于互动性较强的课程,应该适当结合其他学习方式来进行学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tfnmdmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值