android studio yasea,安卓直播推流yasea的使用
緊接着之前寫的安卓直播實現方法,項目后期發現有些定制的安卓設備外掛攝像頭,原來的android_rtmppush_sdk出現調取攝像頭(熱插拔)前后異常和畫面翻轉來回跳動的問題。之后調研發現有個封裝比較完善的純java編譯的開源安卓推流客戶端——yasea,效率高、延遲低、消息提示、自適應強。
我就簡單介紹一下基本使用方法,我下載的是最新版本v2.5,源碼包里面需要使用的是library這個module。
在android studio ide中import進來,導入可能會出現一些value值不存在或主題參數報錯,調高項目Compile Sdk Version(安卓編譯sdk版本)。搞定后參照源碼包中\app\src\main\java\net\ossrs\yasea\demo\MainActivity.java這里的使用方法。
先在你需要推流的activity進行實現幾個接口類public class ExecuteActivity extends Activity implements RtmpHandler.RtmpListener,
SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener {
......
}
然后生成需要重寫的一些函數。
需要注意的是清單文件聲明權限(不贅述)和在布局文件中攝像頭展示界面控件需要聲明成net.ossrs.yasea.SrsCameraView
android:id="@+id/surfaceViewEx"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
項目需要界面嵌入攝像頭,旁邊展示其他業務。activity中只在onCreate()中設置推流的一些核心功能。//聲明推流攝像頭展示界面對象
SrsPublisher mPublisher = new SrsPublisher((SrsCameraView)
findViewById(R.id.surfaceViewEx));
//設置編碼消息處理
mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
//設置RTMP消息處理
mPublisher.setRtmpHandler(new RtmpHandler(this));
//設置記錄消息處理
mPublisher.setRecordHandler(new SrsRecordHandler(this));
//設置展示界面大小
mPublisher.setPreviewResolution(640, 480);
//設置橫屏推流 1為豎屏 2為橫屏
mPublisher.setScreenOrientation(2);
//設置輸出界面大小
mPublisher.setOutputResolution(640, 480);
//設置視頻高清模式
mPublisher.setVideoHDMode();
//打開攝像頭
mPublisher.startCamera();
//開始或暫停按鈕
btnPublish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isPublished) {
//設為硬編碼
mPublisher.switchToHardEncoder();
//開始推流
mPublisher.startPublish(rtmpUrl);
mPublisher.startCamera();
btnPublish.setBackgroundResource(R.drawable.stoppush);
setTextShow("開始推流!");
} else {
mPublisher.stopPublish();
mPublisher.stopRecord();
btnPublish.setBackgroundResource(R.drawable.push);
setTextShow("暫停推流!");
}
isPublished = !isPublished;
}
});
//切換攝像頭按鈕
btnSwitchCamera.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) { mPublisher.switchCameraFace((mPublisher.getCamraId() + 1) % Camera.getNumberOfCameras());
}
});
源碼中的示例能實現更多功能,有一些濾鏡效果,自動切換橫豎推流功能(測試會出現卡頓,甚至切換會停止推流,得需要先暫停再重新推流就能解決)。具體請參照示例MainActivity.java中的使用方法,源碼還是很規范的,可讀性較高。
android studio yasea,安卓直播推流yasea的使用相关推荐
- 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )
文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...
- 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )
文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...
- 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )
文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...
- 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )
文章目录 安卓直播推流专栏博客总结 一. 阿里云服务器购买 二. 远程服务器控制软件 三. 配置 Ubuntu 服务器 1 . 更新 apt 源 2 . 安装 pcre.OpenSSL.zlib 库 ...
- 使用 Android Studio 搭建安卓开发环境
使用 Android Studio 搭建安卓开发环境,方便.快捷.因为 Android SDK 等下载已经集成到 Android Studio 的安装中 1.官网下载 Android Studio ...
- Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...
- Android Studio创建安卓项目工程
Android Studio创建安卓项目工程 前言 因为想抽出时间复习考研因此提前接触安卓的一些开发,在实训的时候就可以不用再听讲学习,节省时间 随着前端混合开发和小程序技术的兴起,安卓开发的需求在日 ...
- Android Studio开发安卓app 安卓与webview中的js交互
Android Studio开发安卓app 安卓与webview中的js交互 1.webview中的页面调用android中的方法 在Android Studio开发安卓app 封装WEB(H5,UR ...
- android大疆无人机直播推流VLC
官方给了直播的方法:startStream,最近公司需求是大疆无人机做直播推流给后台服务器,然后在后台可以看到无人机拍摄的内容,实时监控无人机的状态 因为这个最新的大疆官方给出了方法,所以做起来是非常 ...
最新文章
- 英伟达小姐姐的Python隐藏技巧合集,推特2400赞,代码可以直接跑
- django项目简单调取百度翻译接口
- java 的 非短路_Java 短路运算符和非短路运算符
- Android开发之Java基础面试题抽象类和接口的区别
- git工作中常用命令
- 大学物理光学思维导图_头晕/眩晕问诊最全思维导图,赶紧收藏!
- java环境怎么搭,如何搭建一个完整的Java开发环境
- 日均请求量1.6万亿次背后,DNSPod的秘密-国密DoH篇
- Java中导入Excel文件
- CTFHUB Web题解记录(信息泄露、弱口令部分)
- 154. 正则表达式匹配
- 建站百科|网站Banner风格、样式大解析
- 【Java 8 新特性】Java CompletableFuture thenApply()
- python生成正态分布矩阵_统计学习 | 矩阵正态分布 (matrix normal distribution)
- 【报告分享】2021小红书投放运营指南书-小红书(附下载)
- 发现了JMX的好东西,大家分享一下!!
- python——tensorflow使用和两层全连接神经网络搭建
- mysql dparser.dll_dparser.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
- 【java】 将服务器上文件夹上所有文件打包并下载
- 如何在windows xp[ 下使用自带的播放器播放 mp4、AVI视频