大家好,我是公号3分钟学堂的郭立员!今天这篇文章是:QQ发送语音脚本源码分享
按键精灵本身提供了playsound命令来播放音频文件,但是这个命令有很明显的局限性,作为外放音乐的工具还可以,但是对于我们今天的主题——发送语音就不太好用了,说两点原因啊。
只能单一的发送语音,如果是模拟器多开就会出现串音的问题。通过外发获取音频的qq自动发消息脚本,在给app录制,就会有杂音问题。
所以我们选择另外一种方式:替换音频文件。
先来看看效果如何啊:
通过上面动态图片可以看到我录制的语音只有3秒钟,但是发送的语音却可以播放10多秒钟,很明显两者不是同一个音频,这是因为我在录制完音频之后,用了一个预先准备好的10多秒音频替换录制的音频,然后才去发送出去,这种操作就是偷梁换柱了。
接下来我以雷电模拟器发送QQ录音为例,来讲解一下具体的操作过程。
一、找到录音文件存放在哪里。
上图是音频文件路径的截图,大家可以根据这个音频的属性来查找到对应的路径。我这里把路径写出来:
[En]
The above image is a screenshot of the path of the audio file. You can find the corresponding path according to the attributes of the audio. I’ll write down the path here:
/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
下一步是获取音频文件的名称:
这里用的山海插件的遍历文件命令,也就是把你写的路径文件夹里面的文件名称全部获取出来,然后选择最新的那个文件。
[En]
The traversal file command of the Shanhai plug-in used here, that is, get all the file names in the path folder you wrote, and then select the latest file.
Import “shanhai.lua”
dim a=ShanHai.ScanPath(path)
Dim n=UBound(a)
TracePrint a(n)
得到的QQ录音文件是slk后缀的。
二、脚本的重点替换音频文件。
在上一步已经获取到录制文件了,接下来我们用预先准备好的文件替换它。使用到的命令是dir.Copy,关于这个命令的使用方法自己去查看命令介绍,另外自己要发送的文件也是slk格式,不是常见的MP3,一般我是手动用QQ录制一段,格式一样可以直接使用。(源代码中文件路径1就是我准备的音频文件)
这个脚本基本就是这些内容qq自动发消息脚本,唯一的难点可能就是获取最新的录制音频文件路径了。
[En]
This script is basically this content, the only difficulty may be to get the latest recorded audio file path.
源文件在下面我会提供,使用的时候不要无脑复制,不同设备、不同分辨率都不能直接用,你自己把每一行代码都看明白了再去使用。
[En]
I will provide the source file below, do not copy brainlessly when using, different devices, different resolutions can not be used directly, you read every line of code clearly before you use it.
这里用的是QQ发送录音功能而不是对讲功能,因为录音是生成音频和发送音频分离的,这样我们就可以在发送之前有时间替换文件,这点也非常重要。