autojs鑴氭湰闊充箰浠g爜(autojs鎾斁闊充箰)

牙叔教程简单易懂
效果展示
缘起看视频的时候,觉得人家的音乐动效特别好看,上面这个效果还是没有人家的好看,算个音乐动效雏形吧
环境雷电模拟器: 4 .0 .63安卓系统版本:汽车版本: 8.8.20
思路读取音频数据,格式化数据,再用帆布画数据
你将学到以下知识点
检查及申请录音权限监听申请权限的结果视觉型的人的基本使用帆布画线段音乐暂停与播放界面中止和简历的监听视觉型的人资源释放媒体播放器资源释放滤波,就是把数据变的平滑一点音频数据归一化音乐播放及监听音频数据采样,平均抽样随机颜色
代码讲解
1.初始化一些全局变量,方便修改
let current datalet current data FFT设mSpectrumCount=66设mItemMargin=8;让媒体播放器设内核=5;让可视化工具;
2.申请录音权限
ui.emitter.on(‘activity_result ‘,(requestCode,resultCode,data)={ log(‘ result ‘);如果(结果代码==活动. RESULT_OK) { log(活动。结果_ OK);if(请求代码==6){ log(‘=6 ‘);init();} else { log(!=6’);} }});活动兼容性。请求权限(活动,[‘ Android。许可。record _ AUDIO ‘],6);
3.检查权限
函数检查权限(permission){ let pm=context。getpackagemanager();return(have permission=package manager .permit _ GRANTED==pm。检查权限(PERMISSION,context.getPackageName().toString()));}
4.用户界面界面
ui.layout(播放暂停牙叔教程);
5.界面加载完成,再去绘制音乐,因为要用到画板的宽高
ui。post(function(){ let h=ui。董事会。getheight();初始化侦听器(h);drawIt(ui.board,’ up ‘);drawIt(ui.board2,’ down ‘);});
6.创建音乐数据监听事件
让dataCaptureListener=新的可视化工具OnDataCaptureListener({ onwaveformdatacapture :函数(可视化器、波形、采样率){ //到波形为波形图数据设数据=转换器(波形);currentData=sampling(data,mSpectrumCount);当前数据=滤波器(当前数据);当前数据=滤波器(当前数据);}、onFftDataCapture:函数(可视化器、fft、samplingRate) { //FFT数据,展示不同频率的振幅设数据=转换器FFT(快速傅立叶变换);当前数据FFT=采样FFT(data,mSpectrumCount,h);电流数据FFT=滤波器(电流数据FFT);电流数据FFT=滤波器(电流数据FFT);},});
7.视觉型的人基本配置
可视化工具=新的可视化工具(媒体播放器。getaudiosessionid());//let Visualizer=new Visualizer(0);//采样的最大值设captureSize=visualizer。getcapturesizerange()[1];//采样的频率让captureRate=(可视化工具。getmaxcapturerate()* 2)/3;visualizer.setCaptureSize(捕获大小);可视化工具。setdatacapturelistener(dataCaptureListener,captureRate,true,true);可视化工具。setscalingmode(可视化工具.缩放模式规格化);可视化工具。setmeasurementmode(可视化工具.测量_模式_峰值_有效值);可视化工具。set enabled(真);
8.画笔基本配置
设MP aint=new Paint();MP不是。设置颜色(MC olor);mPaint.setStrokeCap(Paint .首都圆形);MP int。设置样式(绘画.风格。填充);MP不是。setantialias(真);mPaint.setMaskFilter(新的模糊屏蔽过滤器(5,模糊屏蔽过滤器.模糊。固体));
9.定时器修改颜色
let colorList=[‘#64b5f6 ‘,’ #2196f3 ‘,’ # 1565 c0 ‘];设step=mSpectrumCount/colorlist。长度;setInterval(function(){ for(var I=0;i3;I){ let color=getRandomColor();颜色列表[I]=颜色;}}, 3000);
10.绘制线段
对于(设i=stepI步* 2;I){设x1=起点。x I * mSpectrumWidth halfStrokeWidth;设y1=h;设x2=起点。x I * mSpectrumWidth halfStrokeWidth;设y2;if(position===’ up ‘){ y2=h-unitY *当前数据[I];} else { y2=h-当前数据FFT[I];} canvas.drawLine(x1,y1,x2,y2,MP aint);//绘制直线}
11.按键点击事件
ui . pause . click(function(){ media player . pause();});ui . play . click(function(){ if(media player . is playing()){ return true;} else { if(media player){ media player . start();} }});
12.如果界面不显示,就不要播放音乐;如果返回界面,播放音乐。
ui.emitter.on(‘pause ‘,()={ if (mediaPlayer!=null media player . is playing()){ media player . pause();}});ui.emitter.on(‘resume ‘,()={ ui . post(function(){ media player . start();}, 200);});
13.释放资源
events.on(‘exit ‘,function(){ visualizer . set enabled(false));visualizer . release();media player . stop();media player . release();//播放结束后释放媒体播放器mediaPlayer=null打印(‘ exit : ‘ media player);});
参考安卓使用MediaPlayer播放视频的bug,切换后台暂停恢复互前台继续播放。修改安卓仿网易云鲸云音效安卓Visualizer音频可视化——让你的音频跳动起来。
著名的想法是最重要的,其他的百度,bing,stackoverflow,Android文档,autojs文档,最后是群问——牙叔教程。
部分说法来自网络。本教程仅供学习,禁止用于其他目的。

其他教程

最好的3D软件(adobe做3d动画的软件)

2022-9-2 15:27:53

其他教程

有哪些高质量的自学网站(高质量的自学网站)

2022-9-2 15:29:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索