草庐IT

Auto.js设计视频背景测试数据库接口

姜来式 2023-04-12 原文

 这次设计视频背景界面去测试一下之前自制的数据库接口。

代码下载及更多教程在我的公众号:For My Future

一.UI动态背景

    之前写短视频脚本时用到videoview,既然要制作视频背景,那么也需要用到这个控件。还有一个问题是我们的文本框不能够被videoview阻挡,文本,button等一些控件要显示到videoview之上,用到了elevation这个属性。

 ui.layout(
        <frame >
            <android.widget.VideoView  layout_gravity="center"  id="vd" h="{{device.height}}px" w="{{device.width}}" />
            <vertical elevation="1dp" padding="1sp">
                <vertical >
                    <vertical padding="16">
                        <text textSize="30sp" textColor="#ff0000" gravity="center" >服务器数据查询测试</text>
                    </vertical>
                    <vertical h="auto" align="center" margin="0 50">
                        <linear>
                            <card w="*" h="500" margin="0" cardCornerRadius="15dp" cardElevation="15dp" gravity="center" alpha="0.5">
                                <vertical gravity="center">
                                    <text id="t1" size="10" color="#dd000000" paddingLeft="20"/>
                                    <input id="qq" w="*" marginRight="30" marginLeft="30" singleLine="true" hint="请输入要查询的QQ号:" inputType="number"   textColorHint="#dd000000"/>
                                    <text id="t2" size="10" color="#dd000000" marginTop="10" paddingLeft="35"/>
                                    <text id="phone" singleLine="true" size="15" textIsSelectable="true" w="*" marginRight="30" marginLeft="30" singleLine="true" hint="查询结果显示" textColorHint="#dd000000" />
                                 <button id="find" style="Widget.AppCompat.Button.Colored" h='70dp' gravity="center">查询</button>
                                </vertical>
                            </card>
                        </linear>
                    </vertical>
                </vertical>
            </vertical>
        </frame>
    );

  并且设置全屏,

activity.window.setFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN, android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏

  添加视频地址,并重复播放

ui.vd.setVideoPath("/storage/emulated/0/pictures/QQ/luming.mp4")
    ui.vd.start()
 
    threads.start(function() {
        sleep(10000)
        while (true)
            if (!ui.vd.isPlaying()) {
                ui.vd.start()
                sleep(10000);
            }
    })

界面展示,

  在写以上代码时,遇到了一些问题,列举如下:

1.videoview设置长宽的时候,发现视频播放总不能全屏,上下会留一些白框,如下图所示,

一开始我以为是视频本身的问题,换了视频源之后依然如此,当时长宽是这样设置的:


h="{{device.height}}px" w="{{device.width}}px"

后来,我改成了

h="{{device.height}}px" w="{{device.width}}"

只是w没加px单位,竟然能够全屏了。没加px应该默认识别为虚拟像素,更容易适配不同手机。

2.text文本无法复制,加上textIsSelectable="true"即可解决。

3.视频地址设置问题,之前写img控件,src资源设置为src=“file://./1.png”,只要把1.png移动到与当前脚本同一个目录级别即可识别,但是ui.vd.setVideoPath(“file://./luming.mp4”)识别不出来,必须写视频地址的绝对路径

ui.vd.setVideoPath("/storage/emulated/0/pictures/QQ/luming.mp4")。

二.查询功能实现

function receivemsg(qq){
    let url="http://39.101.69.250:88/qq.php?qq="+qq;
    let r=http.get(url);
   let result2=r.body.string();
   let result=(JSON.parse(result2)).phone
   if(result!=""){
     ui.phone.setText(result[0].phone)}
    else{ ui.phone.setText("数据库中没有此条数据!!!")}
    
}
ui.find.on("click",()=> {
    threads.start(function() {
        let temp=ui.qq.getText();
       receivemsg(temp);
  
    })
})

效果展示:

视频演示:

【Auto.js自制数据库接口测试(视频背景)-哔哩哔哩】

 https://b23.tv/A6jsdgb

代码下载及更多教程在我的公众号:For My Future

有关Auto.js设计视频背景测试数据库接口的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  6. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  7. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  8. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  9. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  10. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

随机推荐