教程含有两个部分,第一是利用GifView的jar包采用最简单的方法在ui界面进行gif的播放,第二是利用ffmpeg插件将视频转换为Gif。
一.ui界面播放gif
在网上找了很多参考,但修改为js代码会很麻烦,最后选择使用GifView这个jar包来进行gif的播放,体积小而且很简单。
文末下载的文件素材已包含这个jar包以及相关api介绍,若想了解更多,需要科学上网进入jar包原网址:
https://code.google.com/p/gifview/
等到下载好GifView的jar包,将它移动到工程目录下,像使用控件那样就可以调用它:
"ui";
* 作者: 姜来式
* QQ: 1216951671
runtime.loadJar("./GifView.jar")
ui.layout(
<vertical w="*" h="*" gravity="center">
<com.ant.liao.GifView w="100" h="100" id="gif"/>
<com.ant.liao.GifView w="200" h="200" id="gif2"/>
<button id="convert" w="*" h="auto" text='视频转GIF' textAllCaps="false" style="Widget.AppCompat.Button.Colored" />
</vertical>
//读取GIf文件
var g = files.readBytes("./test.gif")
// 设置显示的大小,拉伸或者压缩
ui.gif.setShowDimension(200, 200);
// 设置 Gif 图片源
ui.gif.setGifImage(g)
var g2 = files.readBytes("./热爱学习.gif")
ui.gif2.setShowDimension(400,400);
ui.gif2.setGifImage(g2)
随后便可看到,gif在ui界面动了起来:
二.视频转gif
利用ffmpeg将视频或者视频的某一段转换成gif动态图片非常简单,只需要一条命令。由于auto.js也有这个插件,那么就选择使用此插件进行GIF的转换。
ui.convert.click(function(){
var intent = new Intent();//意图跳转,选择视频文件
intent.setType("video/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
activity.startActivityForResult(intent, 1);
activity.getEventEmitter().on("activity_result", (requestCode, resultCode, data) => {
if (requestCode == 1) {
if (resultCode == -1) {
let uri = data.getData();
// let p = app.getPathFromUri(uri)
//转换为绝对路径
realpath = getfilepath(uri)
//取文件名,例如1.MP4就取1
name = files.getNameWithoutExtension(realpath)
//设置文件名1.gif
filename = rootpath+name+".gif"
//toastLog(filename)
// 使用ffmpeg提取文件为mp3,参见https://www.baidu.com/s?wd=ffmpeg%20%E8%A7%86%E9%A2%91%E6%8F%90%E5%8F%96mp3
//-s用于设定分辨率, -r 用于设定帧数,一般设置8帧左右就行。
let result = ffmpeg.inProcess.exec(` -i "${realpath}" -s 442x960 -r 8 "${filename}" `);
toast("转换成功")
media.scanFile(filename)
app.viewFile(filename)
ffmpeg命令简单介绍:
-ss 起始时间 -t 持续时间 -i 输入文件 -s 分辨率 -r 帧数 输出文件
ffmpeg命令参考:
https://www.xstui.com/read/1082
如果视频较长,那么当你选择文件后就会卡顿一会才会转换成功,这些都是正常现象
代码、jar包及相关素材下载地址:
https://jianglaishi.lanzout.com/iHJ050dhlpzc
apk下载地址:
https://jianglaishi.lanzout.com/iSPWo0dhlu0h
密码:bdbp
利用ffmpeg将视频或者视频的某一段转换成gif动态图片非常简单,只需要一条命令。由于auto.js也有这个插件,那么就选择使用此插件进行GIF的转换。教程含有两个部分,第一是利用GifView的jar包采用最简单的方法在ui界面进行gif的播放,第二是利用ffmpeg插件将视频转换为Gif。在网上找了很多参考,但修改为js代码会很麻烦,最后选择使用GifView这个jar包来进行gif的播放,体积小而且很简单。如果视频较长,那么当你选择文件后就会卡顿一会才会转换成功,这些都是正常现象。
上传文件, 自然有服务器和客户端, 恰好autojs支持nodejs, 又支持webview, 所以下面的代码都可以在autojs中直接运行.
手机: Mi 11 Pro
Android版本: 11
Autojs版本: 9.0.14
使用的koa, 依赖如下, 执行npm i 安装依赖
"dependencies": {
"koa": "^2.13.4",
"koa-body": "^4.2.0",
"koa-router": "^10.
function animate(obj, target, callback) {
// console.log(callback); callback = function() {} 调用的时候 callback()
// 先清除以前的定时器,只保留当前的一个定时器执行
clearInterval(obj.timer);
obj.timer = setInt...
参考资料里的脚本 报错 invalid put policy encoding 度娘后得知是$putPolicy应为json格式
/* https://www.jianshu.com/p/8d3bbc28c2ac */
//安全的base64函数
function urlsafe_b64encode($string)
$data = base64_encode($string);