Tomcat下调Java录制API (本地服务端录制sdk2.3.3)

demo

#1

环境:
说明
一. 编译Java sdk
1.1 编译java sdk
二. 部署到项目中
2.1库文件和sdk文件
2.2利用eclipse搭建环境
2.2.1在eclipse中场景一个 Dynamic Web Project 项目,
2.2.2项目的基本构成
2.2.3截图中的两个Servlet,需要自己创建
三. 运行演示
3.1起tomcat服务
3.2在浏览器中模拟get请求
3.3起录制
3.4录制离开频道

环境:

  1. JDK 1.8 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  2. Eclipse JEE https://www.eclipse.org/downloads/packages/
  3. tomcat 8.0 https://tomcat.apache.org/download-80.cgi
  4. 录制sdk 2.3.3 https://docs.agora.io/cn/Recording/downloads
  5. Linux环境:
$ uname -a
Linux pierre-virtual-machine 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

说明

本示例仅演示如何把2.3.3Java录制sdk的API集成进简单的web项目中

一. 编译Java sdk

说明:需要从Java sdk demo中获取so库文件和AgoraCoreService文件,以及src下面的调用文件,
所以先从官网下载2.3.3sdk: https://docs.agora.io/cn/Recording/downloads

1.1编译java sdk

下载下来的demo,解压,进入 …samples/java 根据Readme里面的步骤进行编译

通过下面的命令查找jdk的jni.h头文件,确保Linux环境中安装了jdk, 安装的位置由您自己决定

$ find /usr/java/ -name 'jni.h'
/usr/java/jdk1.8.0_181/include/jni.h

然后执行如下命令,设置jni

$ source build.sh pre_set /usr/java/jdk1.8.0_181/include/

最后执行build命令行

$ ./build.sh build

控制台打印的warning可以忽略,

mv AgoraSdk.o ./bin
g++ ./native/RecordingJni.cpp -o [librecording.so](http://librecording.so/) -shared -fPIC -I. -I`pwd`/../../include -I`pwd`/../../include/base -I`pwd`/../../samples/base -I`pwd`/../../samples/agorasdk -I`pwd`/../../samples -I/usr/java/jdk1.8.0_181/include/ -I/usr/java/jdk1.8.0_181/include//linux -std=c++0x ./bin/AgoraSdk.o ./bin/opt_parser.o -pthread -lpthread -L`pwd`/../../libs -lrecorder -lrt -I.
In file included from ./native/RecordingJni.cpp:8:0:
./native/helper.h:38:28: warning: backslash-newline at end of file
#define CPN(PTR) \

mv [librecording.so](http://librecording.so/) ./bin
build all done!

编译成功之后,生成bin

库文件librecording.so 在…bin/io/agora/recording/librecording.so

二. 部署到项目中

2.1. 库文件和sdk文件

librecording.so 建议放在Linux系统的 /usr/lib 下面

AgoraCoreService 随便放在系统中某个位置, 只需要确保 appliteDir引用到

2.2. 利用eclipse搭建环境

2.2.1在eclipse中场景一个 Dynamic Web Project 项目,

中间几步输入项目名称,Next

然后在这一步记得勾选 Generate web.xml deployment descriptor,项目场景之后,自动生成web.xml配置文件

2.2.2.项目的基本构成

src下面的Java文件,集成时需要用到

##2.2.3. 截图中的两个Servlet,需要自己创建

在包 io.agora.recording.test包名上面右击,
New → Servlet → 输入Servlet 名称 → 下一步,直到finish

image

image

创建了servlet之后,需要在web.xml里面配置servlet-name 和 servlet-mapping,具体请看上面的截图中的web.xml的内容。我的示例中只配置了record 开始录制,和leavechannel 结束录制

RecordingServlet.java的内容

开始录制只需要从客户端传频道号过来即可,httprequest获取频道号,调createChannel方法起录制进程

LeavechannelServlet.java 的内容

leavechannel时,只需要传nativehandle即可, 这个nativeHandle 在nativeObjectRef回调中获取

public  void  nativeObjectRef( long  nativeHandle) {

    mNativeHandle = nativeHandle;

    System. out.println("nativeHandle===="+nativeHandle);

}

三. 运行演示

3.1.起tomcat服务

右击项目

3.2.在浏览器中模拟get请求

http://localhost:8080/JavaSDK233/record?channelName=123343

3.3.起录制

3.4录制离开频道