android voip通话音频数据流传输过程解析
我在前面几篇博客中已经描述了sip通话的建立过程,以及基本代码实现流程,但是我们真正的目的是基于sip协议进行语音通话,本文分析这些音频流是如何建立和传输的.
与音频流传输相关的两个java类为AudioStream和AudioGroup,我们先看AudioStream类,它继承自RtpStream类,表示基于RTP协议传输音频流,在类中定义了一个静态代码段,
static {
System.loadLibrary("rtp_jni");
}
当创建该java类对象时,虚拟机首先会检测该类的字节码是否已加载到虚拟机,如果没有,则需要将其加载进来,加载的时候会执行类的静态代码段,System.loadLibrary()方法在加载动态库时候,会调用到JNI_OnLoad()方法,这个实现是在虚拟机里面做的,感兴趣的可以查看dalvik或art的代码实现,
这个库的代码实现在android工程的frameworks/opt/net/voip/src/jni/rtp目录下.
在RtpStream的构造函数中,
RtpStream(InetAddress address) throws SocketException {
mLocalPort = create(address.getHostAddress());
mLocalAddress =
android voip通话音频数据流传输过程解析相关推荐
- ELK学习8_ELK数据流传输过程_问题总结1
数据流传输过程描述: 使用Java程序,读取本地的.csv文件: 发送给集群中的Kafka: Kafka将数据传给Logstash,这个过程中,Logstash中设置有filter,对字符串进行匹配或 ...
- ELK学习9_ELK数据流传输过程_问题总结2
目的:使用Java程序把一个.csv文件发送给Kafka,再发送给ELK 实验步骤:见以前的博客 遇到的问题: 一. 直接发送比较大的.csv文件,ELK接到的汉字内容是乱码的 发送比较小的.csv文 ...
- android通过数组,流播放声音的方法,音频实时传输
AudioRecord和AudioTrack类是Android获取和播放音频流的重要类,放置在android.media包中.与该包中 的MediaRecorder和MediaPlayer类不同,Au ...
- 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...
- Android音频实时传输与播放(四):源码下载(问题更新)【转】
Android音频实时传输与播放(四):源码下载(问题更新) 激动人心的时刻到了有木有 ^_^ 服务端下载请点击这里,客户端下载请点击这里! 最近有朋友在下载源码使用之后,说播放出来的声音噪声很大.其 ...
- Android 系统 (79)---Android应用程序安装过程解析
Android应用程序安装过程解析 Android应用程序安装过程解析 1.程序安装的4大步骤 (1) 拷贝apk文件到指定目录 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用 ...
- Android应用程序安装过程解析(源码解析)
Android应用程序安装过程解析 1.程序安装的4大步骤 (1) 拷贝apk文件到指定目录 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用户安装的apk首先会被拷贝到 /da ...
- Android PayPal支付的接入和SDK支付过程解析
Android PayPal支付的接入和SDK支付过程解析 根据产品需求,要接入PayPal支付,在研究了几天支付后,总结下内容给新手使用,本篇文章如果与官方文档有差异的话,一切以官方为准.转载请注明 ...
- ART对象内存分配过程解析(上)——内存分配的准备阶段(Android 8.1)
注:本文基于Android 8.1进行分析. ART对象分配过程解析--内存分配的准备阶段 本章我们将分析Android 8.1中ART虚拟机的对象创建时内存分配过程的分析.本节将介绍内存分配相关的环 ...
最新文章
- 智能交通:影响人类未来10-40年的重大变革
- 程序可以下载,在线调试disassembly窗口就出现了大片0x00000000 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
- 基于 Bitbucket Pipeline + Amazon S3 的自动化运维体系
- Java程序员转Android开发必读经验
- Oracle分析函数——函数列表
- js优化阿里云图片加载(一)
- 数控车椭圆编程实例带图_数控车床任意位置椭圆宏程序编程,内附实例程序!...
- 在Vid4上突破28dB大关!视频超分新的里程碑:IconVSR
- 现在学java的都是傻子?
- C++中的日期和时间 time_t与struct tm转换
- jquery mysql php_PHP+jQuery+MySQL来实现一个在线测试项目
- matlab 保存变量
- java与eclipse不匹配_【JAVA小白】 用eclipse输入格式不匹配的问题
- 20模3c语言中等于多少钱,科三模拟多钱
- 计算几何基础--线段的性质
- UE打包时候生成多个PAK
- 网易邮箱大师上使用icloud邮箱
- 微服务架构之服务网关
- 电路模型和电路定律(Ⅲ)
- Poly2Tri介绍