热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[置顶]csipsimple源项目的下载配置

1、进入官网www.csipsimple.com,选择source选项卡,可以看到下面的提示:#Non-membersmaycheckoutaread-onlyworkingcopy
1、进入官网www.csipsimple.com,选择source选项卡,可以看到下面的提示: # Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://csipsimple.googlecode.com/svn/trunk/CSipSimple/ csipsimple-read-only

2、通过上面的命令下载到源码目录,

CSipSimple-trunk,这个下面有六个子目录

/home/jindegege/CSipSimple-trunk/ActionBarSherlock

/home/jindegege/CSipSimple-trunk/CSipSimple
/home/jindegege/CSipSimple-trunk/CSipSimpleBranded
/home/jindegege/CSipSimple-trunk/CSipSimpleCodecG729
/home/jindegege/CSipSimple-trunk/CSipSimpleCodecPack

/home/jindegege/CSipSimple-trunk/CSipSimpleVideoPlugin

3、将第一个和第二个导入到eclipse

配置时ActionBarSherlock作为单独的lib,勾选

在主程序中加入ActionBarSherlock的引用




4、介绍下里面主要的几个类

com.csipsimple.ui SipHome.java主界面,用TabHost管理打电话、通话记录和信息界面,菜单有账号、设置、帮助和断开。


com.csipsimple.utils PreferencesWrapper.java配置信息管理,配置的默认值,获取和设置,恢复默认设置resetAllDefaultValues()(line 420)


com.csipsimple.api SipConfigManager.java包含很多公有的静态字符串常量,分别为:媒体、用户界面、网络、安全等配置信息保存在文件中的key


com.csipsimple.utils Compatibility.java编解码器默认优先级

目前编码器采用的是SILK/8000

resetCodecsSettings(PreferencesWrapperpreferencesWrapper)(line331)重置编解码器设置


com.csipsimple.widgets.Dialpad拨号键盘R.layout.dialpad


通话中涉及的类:所在包com.csipsimple.ui.incall

InCallActivity主要界面R.layout.in_call_main

InCallControlsextends FrameLayout R.menu.in_call_controls_menu扬声器、静音、蓝牙、新增通话、媒体

InCallCardextends FrameLayout R.layout.in_call_card挂电话、呼叫保持、录音、通话时间、对方号码、对方sip地址


拨号的类:com.csipsimple.ui.dialpad.DialerFragment

从源码中我们可以看到项目还是比较大的,设计到许多协议、设计模式、跨进程的调用、NDK的开发、自定义组件、actionbar、fragment之间数据的传递等等。



推荐阅读
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 开发笔记:深入解析Android自定义控件——Button的72种变形技巧
    开发笔记:深入解析Android自定义控件——Button的72种变形技巧 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
author-avatar
让安丷全筑起心灵的屏障
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有