FREESWITCH中录音你如果要搞到LUA脚本里就麻烦了,直接在dialplan里面就能录音。
<action application="set" data="execute_on_answer=record_session /data/media/${strftime(%Y%m%d)}/${strftime(%Y%m%d%H)}/${uuid}_$1_${caller_id_number}wav"/>
时间也都是从FS上面获取到传进LUA脚本里的。我是这么使用的。
1、首先通过解压游戏资源包,获取游戏脚本文件,可以直观的看到函数名称、参数等,是最佳的方法。
2、其次游戏没有验证lua、luaplus等dll,可以修改源码编译一个新的dll,在register函数里打印出注册的函数名称、函数地址等等。
3、然后用IDA、OllyDBG等工具查看反编译代码获取参数等信息。
4、最后直接用OllyDBG跟lua的register函数并配合所有参考字符串列表,看看都注册了哪些函数。
*** 作方法如下:
nLog
_1init
init(‘0’,1);_高速程序,当前的游戏是横屏游戏,并且home建在右面
function 点击(x,y)
_ body
touchDown(0, x , y)_模拟手指触摸位置 点下
mSleep(20) --停止20ms
touchMove(0, x , y)-- 模拟手指做轻微偏移
mSleep(20)
touchUp(0, x , y) _ 模拟手指抬起
while (true) do
点击(265, 1427)
mSleep(2000)
end
Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序种,从而为程序提供灵活的扩展和定制功能。
Lua是巴西里约热内卢天主教大学里的一个研究小组,有Roberto Ierusalimschy 、Waldemar Cleles和Luiz Henrique de Figueriredo锁组成并与1993年开发。
当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 相同类型的栈来交互。C 函数从栈中获取她的参数,调用结束后将返回结果放到栈中。为了区分返回结果和栈中的其他的值,每个 C 函数还会返回结果的个数(the function returns (in C) the number of results it is leaving on the stack)。
// luacallcppcpp : 定义控制台应用程序的入口点。
//
#include "stdafxh"
#include <stdioh>
//lua头文件
#ifdef __cplusplus
extern "C" {
#include "luah"
#include <lauxlibh>
#include <lualibh>
}
#else
#include <luah>
#include <lualibh>
#include <lauxlibh>
#endif
int static add(lua_State L)
{
//获取第一个参数
double x=lua_tonumber(L,1);
double y=lua_tonumber(L,2);
//返回值压栈,压入两个返回值
lua_pushnumber(L,x+y);
lua_pushnumber(L,1000);
//返回值的个数,
return 2;
}
int _tmain(int argc, _TCHAR argv[])
{
lua_State L=NULL;
/ 初始化 Lua /
L = lua_open();
/ 载入Lua基本库 /
luaL_openlibs(L);
/ 运行脚本 /
luaL_dofile(L, "/script/funclua");
//函数入栈
lua_pushcfunction(L,add);
//设置全局函数名
lua_setglobal(L,"Add");
//调用lua函数LUACALLCPP来反调cpp中的add
lua_getglobal(L,"LUACALLCPP");
lua_pushnumber(L,10);
lua_pushnumber(L,3433);
//两个参数,两个返回值
lua_pcall(L,2,2,0);
//取返回值二
printf("lua call cpp return val is %f \n",lua_tonumber(L,-1));
//取返回值一
printf("lua call cpp return val is %f \n",lua_tonumber(L,-2));
/ 清除Lua /
lua_close(L);
return 0;
}
---------------------------------------
--region lua
--Date
--此文件由[BabeLua]插件自动生成
print("funclua hava been loaded")
function LUACALLCPP(x,y)
-- 调用c++中的函数
return Add(x,y)
--print(Add(x,y))
end
--endregion
运行结果:
保存到本地的Lua代码需要经过以下步骤:
1 导入相关库文件
首先需要导入相关库文件,包括cocos2d-x库和io库。这可以通过在代码开头添加以下代码实现:
local FileUtils = ccFileUtils:getInstance()
local io = require("io")
2 获取数据
接下来需要获取需要保存的的数据。这可以通过使用cocos2d-x中的Sprite类来实现:
local sprite = ccSprite:create("imagepng")
local texture2D = sprite:getTexture()
local size = texture2D:getContentSizeInPixels()
local data = texture2D:getData()
3 将数据写入文件
最后一步是将获取到的数据写入文件。这可以通过使用io库中的文件 *** 作函数来实现:
local path = FileUtils:getWritablePath() "imagepng"
local file = ioopen(path, "wb")
file:write(data, size)
file:close()
这段代码会将获取到的数据写入一个名为imagepng的文件中,保存在应用的可写目录下。需要注意的是,在写入文件之前需要先创建一个io文件对象,并且在写入完成之后需要关闭文件对象。
以上就是将保存到本地的Lua代码的详细步骤。
以上就是关于freeswitch,在lua脚本如何获取通话时间全部的内容,包括:freeswitch,在lua脚本如何获取通话时间、如何找到游戏的lua接口、lua获取上次点击函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)