推流工具技术整理
1.环境搭建:
软件版本:Android Studio 3.4.2
下载地址:http://www.android-studio.org/
NDK版本:android-ndk-r10e
下载地址:https://developer.android.google.cn/ndk/downloads/
NDK下载到本地之后需要在Android Studio上配置一下地址,
将NDK在电脑中的位置配置在上边我红色框中标注的位置。
2.将推流需要的库下载到本地
使用的库地址为:https://github.com/begeekmyfriend/yasea
将库拉取下来之后将库切换为non-gpuimage分支,并将库打成jar包,让我们后面来进行引用
3.打推流需要的aar包
如何打aar包教程
1.https://www.jianshu.com/p/a7d82b3ac0c4
2.Audio导aar包\AndroidStudio导出aar包给Unity(最详细) - 简书.html
打aar包我遇到的问题
1.在Unity中会遇到资源引用的问题
打开AndroidManifest.xml文件
修改为删除TitleBar的引用
关于Unity调用的脚本名字为UnityActivity.Java
将这个接口做了处理只要调用PushStream()方法就直接开始推流,并且将预览分辨率设置为19201080,将推流出去的分辨率设置为1080720。在调用方法的时候必须先打开安卓摄像头,才能打开startEncode()方法。不然程序会crash。
关闭推流的方法是写在安卓界面上的,调用之前必须先调用关闭安卓原生摄像头,不然会造成摄像头内存无法释放导致crash
Unity调用安卓摄像头我之前实现的原理是这样的,我将Unity的
界面作为安卓的一个View来使用,用Unity的界面把整个安
卓的界面都挡住。然后调用Unity的按钮来控制安卓的推流打开
或者关闭。
后来发现没办法Unity的界面没办法遮挡住安卓原生的View
所以改成了切换两个Acivity。点击开始推流就切换至安卓的
Activity,点击安卓原生的按钮切换为Unity的Activity
在安卓端我修改了一下那个yasea库文件,以便于Unity调用,由于工作保密问题不便发在网上。大家编译什么遇到问题可以私信问我。