大家好,我是公号3分钟学堂的郭立员!今天这篇文章是:QQ发送语音脚本源码分享
按键精灵本身提供了playsound命令来播放音频文件,但是这个命令有很明显的局限性,作为外放音乐的工具还可以,但是对于我们今天的主题——发送语音就不太好用了,说两点原因啊。
只能单一的发送语音,如果是模拟器多开就会出现串音的问题。
通过外发获取音频的,在给app录制,就会有杂音问题。
所以我们选择另外一种方式:替换音频文件。
先来看看效果如何啊:
通过上面动态图片可以看到我录制的语音只有3秒钟,但是发送的语音却可以播放10多秒钟,很明显两者不是同一个音频,这是因为我在录制完音频之后,用了一个预先准备好的10多秒音频替换录制的音频,然后才去发送出去,这种操作就是偷梁换柱了。
接下来我以雷电模拟器发送QQ录音为例,来讲解一下具体的操作过程。
一、找到录音文件存放在哪里。
上图是音频文件路径的截图,大家可以根据这个音频的属性来查找到对应的路径。我这里把路径写出来:
/sdcard/tencent/MobileQQ/767894495/ptt/201904/3/
需要注意几点:
①.截图中/storage/emulated/0用/sdcard替换了,这个我不只说过一遍了,还是有很多朋友不知道,其实大多数手机上遇到路径中有/0/,也是这样替换的。
②.767894495是我的测试QQ号,你在使用的时候必须要换成你自己当前操作的QQ号
③.路径中201904/3/是当前的日期,属于动态变化的内容,可以通过获取当前日期得到。
Dim datearr=split(date(),"/")
Dim yue=datearr(0)&datearr(1)
Dim ri=right(datearr(2),1)
TracePrint yue,ri
下一步是获取音频文件的名称:
这里用的山海插件的遍历文件命令,也就是把你写的路径文件夹里面的文件名称全部获取出来,然后选择最新的那个文件。
Import "shanhai.lua"
dim a=ShanHai.ScanPath(path)
Dim n=UBound(a)
TracePrint a(n)
得到的QQ录音文件是slk后缀的。
二、脚本的重点替换音频文件。
在上一步已经获取到录制文件了,接下来我们用预先准备好的文件替换它。使用到的命令是dir.Copy,关于这个命令的使用方法自己去查看命令介绍,另外自己要发送的文件也是slk格式,不是常见的MP3,一般我是手动用QQ录制一段,格式一样可以直接使用。(源代码中文件路径1就是我准备的音频文件)
这个脚本基本就是这些内容,唯一的难点可能就是获取最新的录制音频文件路径了。
源文件在下面我会提供,使用的时候不要无脑复制,不同设备、不同分辨率都不能直接用,你自己把每一行代码都看明白了再去使用。
这里用的是QQ发送录音功能而不是对讲功能,因为录音是生成音频和发送音频分离的,这样我们就可以在发送之前有时间替换文件,这点也非常重要。
源代码分享:
Import "shanhai.lua"
Dim datearr=split(date(),"/")
Dim yue=datearr(0)&datearr(1)&"/"
Dim ri=right(datearr(2),1)&"/"
TracePrint yue,ri
Dim path="/sdcard/tencent/MobileQQ/767894495/ptt/"&yue&ri
Dim 文件路径1="/sdcard/pictures/stream_2019033011330407.slk"
Tap 362, 1069
Delay 3000
Tap 362, 1069
Delay 1000
dim a=ShanHai.ScanPath(path)
Dim n=UBound(a)
TracePrint a(n)
Dim 文件路径2=path&a(n)
Delay 100
TracePrint dir.Copy(文件路径1,文件路径2)
Delay 100
Tap 515,1242