主程序与用户界面 - 基于Android的VoIP系统设计
系统的主程序是一个标准的Android应用程序,它使用Java语言开发,符合SDK规范。与一般的SDK程序不同的是,该类中必须使用Syst-em.loadLibrary加载PJSIP库文件。形式如下:
System.loadLibrary(“pjsip-jni”);
其中,pjsip-jni就是上节中PJSIP协议栈生成的库。
主程序中的基本方式均按照上节中的过程,创建并初始化PJSUA;当call按键被触发时发起会话,调用make-call()方法;当用户接受通话时,点击hang或cancel按键,触发hang()或采用destry()方法等。
用户接口是通过Android SDK来实现的,这部分几乎全都是Java语言,由于UI不是本文的重点,因此只介绍一个简单的界面,实际应用中用户交互是非常重要的。为了实现所需的功能,至少需要一个文本框来提供SIP地址,以及两个按键来控制会话发起和结束。另外,在呼叫与通话过程中,还需要一个页面来显示,这里可以通过对话框来显示,最后的界面如图2所示。
3 封装与调试
为了能在Android平台上方便地使用该系统,在实现了PJSIP协议栈、JNI接口以及UI之后,还需将上面所有的模块进行封装。Android SDK提供了一些很有用的工具,如aapt等,由于本文重点不在AndriodSDK,所以可以采用集成开发工具(如集成在Eclipse中的ADT)来封装。在工程libs(如果不存在则新建)目录下新建一个名为armeabi的目录,将上节生成的.so库文件放到该目录下。ADT在封装资源时会自动将该库文件封装到apk文件中,apk是Android操作系统中应用程序的封装形式,在所有android平台中均能使用。
封装后安装到Android手机、MID或虚拟机中,并发起会话。与开源SIP软件Linphone通信的结果如图2所示。
4 结语
通过测试表明,该系统能够对发起并很好地控制SIP信令,该系统由于采用SIP协议,因此与所有采用这一协议的软件均能通信,如Lin-phone,Kphone等,功能测试中表现良好,实现了VoIP的基本需求。同时如果要增加功能,可以在Java类中添加相应的方法并在应用层调用即可,具有一定的可扩展性。
- 第 1 页:基于Android的VoIP系统设计
- 第 2 页:新建PJSIP类
- 第 3 页:主程序与用户界面
本文导航
非常好我支持^.^
(1) 100%
不好我反对
(0) 0%
相关阅读:
- [电子说] 社区说|多才多艺: 探索 Android 应用更多可能 2023-10-24
- [电子说] 浩辰软件正式登陆上交所科创板 2023-10-23
- [电子说] 鸿蒙原生应用,对开发者意味着什么? 2023-10-22
- [电子说] Android端自定义铃声 MobPush对安卓端自定义铃声的教程 2023-10-21
- [电子说] Android推送问题排查技巧 针对MobPush安卓端推送问题的解决办法 2023-10-21
- [电子说] 如何使用Proxyman抓取Android的https请求? 2023-10-19
- [编程语言及工具] 基于OkHttp 3.10.0的源码案例解析 2023-10-17
- [电子说] 基于MacroBenchmark的性能测试量化指标方案 2023-10-17
( 发表人:Spring )