Android平台上的Linphone学习(一)

Linphone: 适用于很多平台(Windows, Mac OS, Android)的VOIP电话工具, 基于标准SIP协议.

Linphone-android: Android平台上的Linphone.

Linphone-android的工程中,一部分是Java实现的功能框架,另一部分是JNI实现的linphone动态库.

学习过程可以分两步:

(1)熟悉Java层框架;

(2)阅读linphone动态库的C源码.

环境配置可以分三部分:

(1)下载已经编译好的Linphone-android工程,导入Eclispe阅读;

(2)从Linphone官网或者 github上下载未经过编译的源码,在Linux下自己编译成可运行的Android应用;

(3)下载Linphone库的C源码,选择环境(如Source Insight?)并阅读.

源码干货可以分四部分:

(1)Java层框架实现的SIP三层协议架构: 传输层,事务层,语法编解码层

(2)linphone动态库C源码实现的SIP功能: 注册,请求,请求超时,邀请会话,挂断电话,邀请视频,收发短信...

(3)linphone动态库C源码实现的音视频编解码功能

(4)Android平台上的音视频捕获,播放功能

时间: 2024-12-14 22:37:58

Android平台上的Linphone学习(一)的相关文章

Android平台上PMEM的使用及Platform设备注册(一)

Android中PMEM驱动程序是物理内存的驱动程序,可用于分配物理内存.PMEM在camera和video系统中频繁使用.下面,简单记录一下PMEM的使用方法.另外,由于PMEM设备做为Platform设备存在,所以我们将对Platform设备做以简单描述. 一.PMEM的使用 使用PMEM需要包含如下几个头文件: #include <sys/ioctl.h> #include <binder/MemoryHeapBase.h> #include <binder/Memor

Android平台上PMEM的使用及Platform设备注册(二)

三.注册PMEM设备 这里我们除了描述PMEM设备,还将注册一个拥有memory空间和IRQ资源的示例设备example_device. 对于example_device,定义如下结构体: static struct resource example_resources[] = { [0] = { .start  = 0xC0000000, .end    = 0xC0020000, .flags  = IORESOURCE_MEM, }, [1] = { .start  = 30, .end 

Android平台上的Aplay与TinyAlsa移植使用

ALSA是高级Linux声音架构.提供了一系列音频的逻辑接口,包括PCM.CONTROL等.这些,不影响它的使用,了解一下就可以. 在Android设备上,2.x的版本,要控制录制播放音频,要使用alsa-lib和alsa-utils编译出aplay播放器.使用你的交叉编译工具,经过一系列编译后移植使用. 而在3.x的版本往后,已经使用TinyAlsa来替代这些了.tinyalsa的使用,与aplay相比,大大降低了编译和使用难度. 过程今天记录了,明天更. TODO:aplay交叉编译过程&t

[图文]为移植到Android平台上的Cocos2d-x项目添加xml布局文件

转载请标明出处:http://blog.csdn.net/vistatns/article/details/51316462 (将Cocos2d-x项目移植到Android上请前往:http://blog.csdn.net/vistatns/article/details/51316103) 1.添加布局文件main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:a

android平台上AES,DES加解密及问题

在使用java进行AES加密的时候,会用到如下方法: SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); 但是在android4.2以上进行加密.解密时,会报类似badPadding的异常,但是把该代码替换成一下方法则一切都OK. SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto"); AES加密算法: ? 1

Android WebView简要介绍和学习计划

我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就换成基于Chromium的实现了.基于Chromium实现,使得WebView可以更快更流畅地显示网页.本文接下来就介绍Android WebView基于Chromium的实现原理,以及制定学习计划. 通过前面几个系列文章的学习,我们知道,Chromium的实现是相当复杂的.这种复杂可以体现在编译出

GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式. 对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局.能够让开发者轻松开发

Android 8.0的平台上,应用不能对大部分的广播进行静态注册

引言在Android 8.0的平台上,应用不能对大部分的广播进行静态注册,也就是说,不能在AndroidManifest文件对有些广播进行静态注册,这里必须强调是有些广播,因为有些广播还是能够注册的.比如,经过测试,对接收Android 开机的广播通过静态注册还是能够正常接收的. 解决办法我们知道广播的注册方式分为两种: 静态注册,也就是说在AndroidManifest文件中对BroadcastReceiver进行注册,通常还会加上action用来过滤. 动态注册,调用Context中的reg

Android应用开发工程师职业学习路线

描述 一个出色的Android开发工程师应该掌握哪些必要技能呢?我想应该掌握如下几个方面: 1. 语言基础,语言基础应该掌握C语言开发和Java语言开发,有人会问学习Android开发还要学习C语言吗?是这样的.Android底层是由C语言和C++来实现并运行Linux平台上,上层应用才是Java语言实现的,我们经常通过Java JNI的方式来调用C和C++,如果不会C语言就不知道如何使用JNI,如何调用底层C和C++实现 2. Android 基本组件及编程思想,虽然Android应用由Jav