• android-jain-sip-ri


    公司需要开发一个Android端的GB28181客户端,网上有大神开发了电脑端的Java版本,使用jain-sip-ri来处理信令,使用ffmpeg来推流,推的是一个本地视频文件。项目地址如下:

    • gitee地址:https://gitee.com/wydpp/gb28181-client
    • github地址:https://github.com/apachefarmer/gb28181-client

    我现在要做的是把这个项目改成在Android中使用,先是在IntelliJ中修改,把关于SpringBoot的东西全部删除,把不需要的依赖也删除,基本确定只需要两个依赖,如下:

    implementation 'javax.sip:jain-sip-ri:1.3.0-91'
    implementation 'log4j:log4j:1.2.17'
    
    • 1
    • 2

    然后项目中读取xml资源文件使用到了dom4j,所以还需要这个依赖:

    implementation 'org.dom4j:dom4j:2.1.3'
    
    • 1

    把代码复制到Android Studio项目中,后来发现对于jain-sip-ri有Android版本,所以Android中需要的依赖如下:

    implementation 'javax.sip:android-jain-sip-ri:1.3.0-91'
    implementation 'log4j:log4j:1.2.17'
    implementation 'org.dom4j:dom4j:2.1.3'
    
    • 1
    • 2
    • 3

    其中android-jain-sip-ri使用到了log4j来打印调试日志,所以,想要把android-jain-sip-ri的调试日志打印出来,还需要配置好对应Android版本的log4j,具体实现可参考我的另一篇文章:https://blog.csdn.net/android_cai_niao/article/details/125889355

    通过全局替换功能,把javax.sip的一些包替换为android.javax.sip,还有其它的一些包,也是一样的原理,编译报错时,就把报错的包全部替换,在包的前面添加android.即可,在代码中,也有一些硬编码使用到了包名,也需要添加android.,在创建SipStackSipFactory的时候,包名前面需要添加android.,如下:

    Properties properties = new Properties();
    properties.setProperty("android.javax.sip.STACK_NAME", "GB28181_SIP");
    properties.setProperty("android.javax.sip.IP_ADDRESS", SipDeviceConfig.getInstance().getMonitorIp());
    try {
        sipStack = (SipStackImpl) SipFactoryCreator.getSipFactory().createSipStack(properties);
    } catch (PeerUnavailableException e) {
        throw new RuntimeException(e);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    sipFactory = SipFactory.getInstance();
    sipFactory.setPathName("android.gov.nist");
    
    • 1
    • 2
  • 相关阅读:
    机械硬盘,Win10系统,磁盘100%
    秋招Java后端开发冲刺——非关系型数据库篇(Redis)
    FlinkSQL CDC实现同步oracle数据到mysql
    centos7修改系统运行级别
    02.CRUD和文件上传下载
    MySQL:02-增删改查
    自定义监控组件的配置
    在 SpringBoot 项目中使用 Swagger 接口文档演示
    使用PaddleNLP UIE模型提取上市公司PDF公告关键信息
    952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题
  • 原文地址:https://blog.csdn.net/android_cai_niao/article/details/125896243