Skip to content

Commit 448cb87

Browse files
committed
添加录音接口回调以及native lua的支持
1 parent 31f8300 commit 448cb87

File tree

9 files changed

+131
-5
lines changed

9 files changed

+131
-5
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/binder/VenvyLVLibBinder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import cn.com.venvy.lua.plugin.LVPlayerPlugin;
2424
import cn.com.venvy.lua.plugin.LVPreLoadPlugin;
2525
import cn.com.venvy.lua.plugin.LVRSAPlugin;
26+
import cn.com.venvy.lua.plugin.LVRecordPlugin;
2627
import cn.com.venvy.lua.plugin.LVReportPlugin;
2728
import cn.com.venvy.lua.plugin.LVStatisticsPlugin;
2829
import cn.com.venvy.lua.plugin.LVTableToJsonPlugin;
@@ -59,6 +60,7 @@ void installPlugin(VenvyNativeBinder venvyNativeBinder) {
5960
LVUrlPlugin.install(this);
6061
LVViewManagerPlugin.install(this, venvyNativeBinder.getRootView());
6162
LVLoginPlugin.install(this, venvyNativeBinder.getPlatform());
63+
LVRecordPlugin.install(this, venvyNativeBinder.getPlatform());
6264
LVCachePlugin.install(this);
6365
LVCommonParamPlugin.install(this);
6466
LVTableToJsonPlugin.install(this);

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/maper/VenvyAcrCloudMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public Varargs invoke(int code, U target, Varargs varargs) {
5151
public LuaValue acrRecognizeCallback(U target, Varargs varargs) {
5252
final LuaFunction callback = varargs.optfunction(2, null);
5353
if (callback != null && callback.isfunction()) {
54-
return target.setMqttCallback(callback);
54+
return target.setAcrCloudCallback(callback);
5555
}
5656
return LuaValue.NIL;
5757
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package cn.com.venvy.lua.plugin;
2+
3+
import com.taobao.luaview.util.LuaUtil;
4+
5+
import org.luaj.vm2.LuaFunction;
6+
import org.luaj.vm2.LuaValue;
7+
import org.luaj.vm2.Varargs;
8+
import org.luaj.vm2.lib.VarArgFunction;
9+
10+
import cn.com.venvy.Platform;
11+
import cn.com.venvy.common.interf.IPlatformRecordInterface;
12+
import cn.com.venvy.lua.binder.VenvyLVLibBinder;
13+
14+
import static android.R.attr.data;
15+
16+
/**
17+
* Created by lgf on 2020/2/26.
18+
*/
19+
20+
public class LVRecordPlugin {
21+
public static void install(VenvyLVLibBinder venvyLVLibBinder, Platform platform) {
22+
venvyLVLibBinder.set("acrRecordStart", new AcrRecordStart(platform));
23+
venvyLVLibBinder.set("acrRecordEnd", new AcrRecordEnd(platform));
24+
}
25+
26+
/**
27+
* 录制开始事件
28+
*/
29+
private static class AcrRecordStart extends VarArgFunction {
30+
private Platform mPlatform;
31+
32+
AcrRecordStart(Platform platform) {
33+
this.mPlatform = platform;
34+
}
35+
36+
@Override
37+
public Varargs invoke(Varargs args) {
38+
if (mPlatform != null && mPlatform.getPlatformRecordInterface() != null) {
39+
mPlatform.getPlatformRecordInterface().startRecord();
40+
}
41+
return LuaValue.NIL;
42+
}
43+
}
44+
45+
/**
46+
* 录制开始事件
47+
*/
48+
private static class AcrRecordEnd extends VarArgFunction {
49+
private Platform mPlatform;
50+
51+
AcrRecordEnd(Platform platform) {
52+
this.mPlatform = platform;
53+
}
54+
55+
@Override
56+
public Varargs invoke(Varargs args) {
57+
final int fixIndex = VenvyLVLibBinder.fixIndex(args);
58+
if (args.narg() > fixIndex) {
59+
if (mPlatform != null && mPlatform.getPlatformRecordInterface() != null) {
60+
final LuaFunction callback = LuaUtil.getFunction(args, fixIndex + 1);
61+
if (callback == null) {
62+
return LuaValue.NIL;
63+
}
64+
mPlatform.getPlatformRecordInterface().endRecord(new IPlatformRecordInterface.RecordCallback() {
65+
@Override
66+
public void onRecordResult(byte[] data) {
67+
LuaUtil.callFunction(callback, LuaValue.valueOf(data));
68+
}
69+
70+
@Override
71+
public void onRecordResult(String filePath) {
72+
LuaUtil.callFunction(callback, LuaValue.valueOf(filePath));
73+
}
74+
});
75+
}
76+
}
77+
return LuaValue.NIL;
78+
}
79+
}
80+
}

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/Platform.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import android.support.annotation.Nullable;
44
import android.view.ViewGroup;
55

6-
import org.json.JSONArray;
7-
86
import java.io.File;
97
import java.io.Serializable;
108
import java.lang.reflect.Method;
@@ -20,6 +18,7 @@
2018
import cn.com.venvy.common.interf.IAppletListener;
2119
import cn.com.venvy.common.interf.IMediaControlListener;
2220
import cn.com.venvy.common.interf.IPlatformLoginInterface;
21+
import cn.com.venvy.common.interf.IPlatformRecordInterface;
2322
import cn.com.venvy.common.interf.IWidgetClickListener;
2423
import cn.com.venvy.common.interf.IWidgetCloseListener;
2524
import cn.com.venvy.common.interf.IWidgetPrepareShowListener;
@@ -28,7 +27,6 @@
2827
import cn.com.venvy.common.interf.WedgeListener;
2928
import cn.com.venvy.common.media.StorageUtils;
3029
import cn.com.venvy.common.media.file.Md5FileNameGenerator;
31-
import cn.com.venvy.common.report.Report;
3230
import cn.com.venvy.common.statistics.VenvyStatisticsManager;
3331
import cn.com.venvy.common.track.TrackHelper;
3432
import cn.com.venvy.common.utils.VenvyAsyncTaskUtil;
@@ -45,6 +43,7 @@ public class Platform implements Serializable {
4543
private boolean nvgShow = true; // 视联网小程序是否显示导航栏
4644
//手动上报逻辑
4745
private IPlatformLoginInterface mPlatformLoginInterface;
46+
private IPlatformRecordInterface mPlatformRecordInterface;
4847
private IMediaControlListener mMediaControlListener;
4948
private IWidgetShowListener mWidgetShowListener;
5049
private IWidgetCloseListener mWidgetCloseListener;
@@ -103,6 +102,10 @@ public void setPlatformLoginInterface(IPlatformLoginInterface mPlatformLoginInte
103102
this.mPlatformLoginInterface = mPlatformLoginInterface;
104103
}
105104

105+
public void setPlatformRecordInterface(IPlatformRecordInterface mPlatformRecordInterface) {
106+
this.mPlatformRecordInterface = mPlatformRecordInterface;
107+
}
108+
106109
public void setWidgetClickListener(IWidgetClickListener mWidgetClickListener) {
107110
this.mWidgetClickListener = mWidgetClickListener;
108111
}
@@ -158,6 +161,10 @@ public IPlatformLoginInterface getPlatformLoginInterface() {
158161
return mPlatformLoginInterface;
159162
}
160163

164+
public IPlatformRecordInterface getPlatformRecordInterface() {
165+
return mPlatformRecordInterface;
166+
}
167+
161168
public void updatePlatformInfo(PlatformInfo platformInfo) {
162169
this.mPlatformInfo = platformInfo;
163170
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package cn.com.venvy.common.interf;
2+
3+
/**
4+
* Created by lgf on 2020/2/26.
5+
*/
6+
7+
public interface IPlatformRecordInterface {
8+
void startRecord();
9+
void endRecord(RecordCallback loginCallback);
10+
interface RecordCallback {
11+
void onRecordResult(byte[] data);
12+
void onRecordResult(String filePath);
13+
}
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package cn.com.venvy.common.interf;
2+
3+
/**
4+
* Created by lgf on 2020/2/26.
5+
*/
6+
7+
public abstract class PlatformRecordListener implements IPlatformRecordInterface {
8+
9+
@Override
10+
public void startRecord() {
11+
12+
}
13+
14+
@Override
15+
public void endRecord(RecordCallback loginCallback) {
16+
17+
}
18+
}

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusAdapter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import cn.com.venvy.common.interf.IACRCloud;
1010
import cn.com.venvy.common.interf.IMediaControlListener;
1111
import cn.com.venvy.common.interf.IPlatformLoginInterface;
12+
import cn.com.venvy.common.interf.IPlatformRecordInterface;
1213
import cn.com.venvy.common.interf.ISocketConnect;
1314
import cn.com.venvy.common.interf.ISvgaImageView;
1415
import cn.com.venvy.common.interf.IWidgetClickListener;
@@ -81,7 +82,9 @@ public WedgeListener buildWedgeListener() {
8182
public IPlatformLoginInterface buildLoginInterface() {
8283
return null;
8384
}
84-
85+
public IPlatformRecordInterface buildRecordInterface(){
86+
return null;
87+
}
8588
public IWidgetPrepareShowListener buildWidgetPrepareShowListener() {
8689
return null;
8790
}

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ protected Platform updatePlatformListener(Platform platform, VideoPlusAdapter vi
352352
platform.setWidgetCloseListener(videoOSAdapter.buildWidgetCloseListener());
353353
platform.setMediaControlListener(videoOSAdapter.buildMediaController());
354354
platform.setPlatformLoginInterface(videoOSAdapter.buildLoginInterface());
355+
platform.setPlatformRecordInterface(videoOSAdapter.buildRecordInterface());
355356
platform.setTagKeyListener(videoOSAdapter.buildOttKeyListener());
356357
platform.setWedgeListener(videoOSAdapter.buildWedgeListener());
357358
if (mAppletListener != null) {

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusH5Controller.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ protected Platform updatePlatformListener(Platform platform, VideoPlusAdapter vi
6161
platform.setWidgetCloseListener(videoOSAdapter.buildWidgetCloseListener());
6262
platform.setMediaControlListener(videoOSAdapter.buildMediaController());
6363
platform.setPlatformLoginInterface(videoOSAdapter.buildLoginInterface());
64+
platform.setPlatformRecordInterface(videoOSAdapter.buildRecordInterface());
6465
platform.setTagKeyListener(videoOSAdapter.buildOttKeyListener());
6566
platform.setWedgeListener(videoOSAdapter.buildWedgeListener());
6667
platform.setWidgetPrepareShowListener(videoOSAdapter.buildWidgetPrepareShowListener());

0 commit comments

Comments
 (0)