使用 PJSIP 开源库进行 VoIP 媒体和信号处理

Using PJSIP open source library for VoIP media and signal handling

我是 android 的新手,我找到了一份初级 Android 的工作,有人建议我使用 PJSIP 创建 VoIP 应用程序的后端功能。它旨在自行处理媒体传输和信号。

我在浏览文档时遇到了困难。我尝试阅读它,但很难理解代码和功能。如何在 Android Studio (Java) 中实现用 C 编写的库?我如何通读文档并理解我的意图?

我试过通读 PJSIP 开发人员指南,其中大部分内容对我来说似乎难以理解。

在 pjsip-apps 中找到 android 的 pjsua 示例应用程序。它很好地说明了如何通过 android java 应用程序中的 JNI 接口使用 pjsip c-library。

我正在开发与您的类似的应用程序以及视频支持。我还没有将 pjsip 库集成到应用程序中。但是已经为 android.

构建了库

为了回答您的问题, NDK(android studio 中可用的 SDK)用于在 android 中实现 C 和 C++ 等原生语言。使用 JNI 接口,C、C++ 代码与 android 兼容,您现在没有硬编码任何这些。 转到 pjsip 并获取 tar 或基于平台的 zip 文件(windows 或 linux)并将其解压缩到您的系统中。 还需要安装ndk,google按步骤

构建库会有点麻烦。所以请按照官方指南进行操作,对于出现的错误,请按照以下步骤操作

为 android 构建 PJSIP 转到为 android

下载的 pjproject 的目录

转到 pjproject/pjlib/include/pj 并检查 config_site.h 文件,如果找不到,请创建一个并添加: 标签定义 PJ_CONFIG_ANDROID 1 主题标签包括 angular 大括号 pj/config_site_sample.h angular 大括号

export ANDROID_NDK_ROOT = ndk(已下载)的 ndk-bundle 的路径。

转到pjproject的根文件夹和 执行 。/配置 make dep && make clean && make

错误:

对于未找到编译器的错误,使用 sudo apt-get clang 安装 clang 并执行 export CC="$ANDROID_NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -target armv7-none-linux-androideabi -gcc-toolchain $NDK_TOOLCHAIN" export CXX="$ANDROID_NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -target armv7-none-linux-androideabi -gcc-toolchain $NDK_TOOLCHAIN"

对于 C 编译器无法创建可执行文件错误 授予对 ndk-bundle

的权限

chmod -R 777 ndk-bundle

任何文件夹中缺少分隔符错误 执行查找。 -type f -name '*.depend' | xargs rm

对于任何其他错误,还要安装 g++