Linphone探索:1 . Linphone官方源码探究

版权声明:本文为博主原创文章,若要转载请声明CSDN博客地址及QQ:546844635,邮箱:qinxiaoyu@163.com。 https://blog.csdn.net/u012812482/article/details/51491226

项目地址:https://git.oschina.net/qin_xiao_yu/Linphone.git


这里写图片描述

1 . org.linphone

  • AboutFragment.java:关于界面片段。
  • AccountPreferencesFragment:用户参数界面片段。
  • BandwidthManager:带宽管理器。
    • 更新当前profile的带宽设置,当带宽不足以支持视频时,设置音频带宽最大为40kbits/s,当带宽足以支持视频时不限制音频最大带宽。
  • BluetoothManager:蓝牙管理器。
  • BootReceiver:继承自BroadcastReceiver的类,用于在设备启动时自动启动LinphoneService。
  • CallActivity:通话界面。
  • CallAudioFragment:通话音频界面。
  • CallIncomingActivity:来电界面。电话的接听,挂断。
    • 当前没有活动电话的情况下:可以通过按键挂断和接听来电。
    • 通过LinphoneCoreListenerBase类,复写callState(电话方法)监听liphone内核电话状态,如果电话已经被挂断(分两种情况,对方挂断,本方挂断)则挂断电话。如果linphone内核已经检测到音频流(这里是铃声的流)则使linphone内核打开手机的喇叭,此时来电铃声就会播放。
  • CallManager:通话管理。
    • inviteAddress:向某个地址发起invite 请求
    • reinviteWithVideo:向当前的音频通路发起视频的invite请求,若当前带宽太窄或当前通路已经有视频流,这不发起invite请求。
    • reinvite:根据当前的profile向当前通路发起invite请求。
    • updateCall:改变当前视频通话的视频尺寸,调用该方法将会在重新建立流媒体通道和重新设置电话参数时重新打开摄像头。
  • CallOutgoingActivity:拨出电话界面。
  • CallVideoFragment:视频通话界面。
    • 在当前的Activity中放置了一个继承自viewsurface的控件,用来绘制视频界面。
  • ChatFragment:短信息界面。一个类似手机短信的界面。
  • ChatListFragment:短消息列表界面。
  • ChatMessage:短信的数据封装类。定义了一条短信应该有的数据。
  • ChatStorage:短信的存储类。使用sqlite数据库保存短信。
  • Contact:联系人的数据封装类。
  • ContactDetailsFragment:联系人详情界面。
  • ContactEditorFragment:联系人编辑界面。
  • ContactsListFragment:联系人列表界面。
  • ContactsManager:联系人管理。
  • DialerFragment:拨号界面。
    • 该界面包含了拨号号码的显示。
    • 该界面直接发起了拨号动作:newOutgoingCall方法直接发起了拨号动作。
  • EmptyFragment:空界面。
  • FragmentsAvailable:片段界面切换到业务逻辑控制。设定在某些情况下只能显示某些特定的Fragment界面。
  • HistoryDetailFragment:历史通话记录详情界面。(针对某个特定的号码的详情)
  • KeepAliveHandler:保持linphone core和linphone manager活动的类,监听所有的广播,若linphone manager已经被销毁或者没有被创建,则刷新参数,并且向服务器再次发起注册动作。
  • KeepAliveReceiver:保持存活(?在线?)的接收器。如果在收到ACTION_SCREEN_ON(屏幕点亮)的广播后,LC向服务器发送小的UDP包,以维持UDP NAT的会话。
  • LinphoneActivity:Linphone主界面。
  • LinphoneContact:Linphone联系人。
  • LinphoneException:Linphone异常。
  • LinphoneLauncherActivity:Linphone软件启动时的第一个界面。
  • LinphoneManager:Linphone管理器。
    • 启动管理:linphone内核(core),
    • 文件管理:来电铃声、信息铃声、暂停铃声、配置文件
    • 在线状态:在线,离线。
    • 网络状态:网络状态发生变化。
    • 通话管理:拨出,挂断,DTMF,接听。
    • 短消息:状态
    • 设备管理:摄像头,
    • 编码器管理:音、视频编码器的检测
    • 通道管理(Tunnel):
    • 音量管理
    • 音频通道:喇叭或者蓝牙
    • 铃声管理:启动或者停止
  • LinphoneNumberOrAddress:Linphone号码和地址。
  • LinphonePreferences:Linphone参数设置。
  • LinphoneService:Linphone后台服务。
    • 初始化LinphoneManager。
    • 通过LinphoneManager启动C库的libLinphone。
    • LinphoneManager的状态发生变化时产生反应。
    • 将GUI应有的变化传递给GUI的监听器。
  • LinphoneUtils:Linphone工具,都是静态方法,用户获取各种参数的工具库。
  • NetworkManager:网络管理器。通过广播监听网络的变化状况,并将连接状况相Linphone core汇报。
  • OpenGLESDisplay
  • PhoneStateChangedReceiver:监听手机状态的变化,主要是手机的打电话的状态的改变。
    • 当手机在振铃(普通电话,不是SIP电话)是,要暂停所有的SIP电话。
    • 当普通电话在休眠时则允许SPI电话的各种业务。
  • PreferencesMigrator:参数变形(通过这个类可以修改LinphonePreferences的参数,并且将其保存在文件中)。
  • SettingsFragment:设置界面。
  • StatusFragment:状态界面。
    • 显示视频、音频上下行带宽
    • 显示音频、视频编码方式
  • UIThreadDispatcher:UI线程调度。

2 . org.linphone.assistant

  • AssistantActivity:助理界面。通过按键等判断选择不同的界面。
  • AssistantFragmentsEnum:助理界面枚举。
    • WELCOME:欢迎界面
    • CREATE_ACCOUNT:创建账户
    • CREATE_ACCOUNT_ACTIVATION:激活账户
    • LINPHONE_LOGIN:Linphone 登陆界面
    • LOGIN:登陆界面
    • REMOTE_PROVISIONING:远程设置
    • ECHO_CANCELLER_CALIBRATION:回声消除校正设置
  • CreateAccountActivationFragment:创建账户完成界面
    • 这里写图片描述
  • CreateAccountFragment:创建账户第一界面
    • 这里写图片描述
  • EchoCancellerCalibrationFragment:
    • 这里写图片描述
  • LinphoneLoginFragment:
    • 这里写图片描述
  • LoginFragment:
    • 这里写图片描述
  • RemoteProvisioningActivity:
      -
  • RemoteProvisioningFragment:
  • RemoteProvisioningLoginActivity:储存账户-点击按钮后储存
    • 这里写图片描述
  • WelcomeFragment:
    • 这里写图片描述

3 . org.linphone.compatibility

  • ApiEightPlus:API 8 支持
  • ApiElevenPlus:API 11 支持
  • ApiFivePlus:API 5 支持
  • ApiFourteenPlus:API 14 支持
  • ApiNinePlus:API 9 支持
  • ApiSixteenPlus:API 16 支持
  • ApiTwentyOnePlus:API 21 支持
  • Compatibility
  • CompatibilityScaleGestureDetector:手势动作比例的兼容性
  • CompatibilityScaleGestureListener

4 . org.linphone.gcm

  • GCMReceiver
  • GCMService

5 . org.linphone.sync

  • AuthenticationService
  • Authenticator
  • SyncAdapter
  • SyncService

6 . org.linphone.tutorials

  • AndroidTutorialNotifier
  • TutorialBuddyStatusActivity
  • TutorialCardDavSync
  • TutorialChatRoomActivity
  • TutorialHelloWorldActivity
  • TutorialLauncherActivity
  • TutorialRegistrationActivity

7 . org.linphone.ui

  • AddressAware
  • AddressText
  • BubbleChat
  • CallButton
  • Digit
  • EraseButton
  • LedPreference
  • LinphoneScrollView
  • LinphoneSliders
  • Numpad
  • PreferencesListFragment
  • ScrollViewListener
  • SlidingDrawer

8 . org.linphone.xmlrpc

  • XmlRpcHelper
  • XmlRpcListener
  • XmlRpcListenerBase
展开阅读全文

没有更多推荐了,返回首页