緊接着之前寫的安卓直播實現方法,項目后期發現有些定制的安卓設備外掛攝像頭,原來的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的使用相关推荐

  1. 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )

    文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...

  2. 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...

  3. 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

    文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...

  4. 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 阿里云服务器购买 二. 远程服务器控制软件 三. 配置 Ubuntu 服务器 1 . 更新 apt 源 2 . 安装 pcre.OpenSSL.zlib 库 ...

  5. 使用 Android Studio 搭建安卓开发环境

    使用  Android Studio  搭建安卓开发环境,方便.快捷.因为 Android SDK 等下载已经集成到 Android Studio 的安装中 1.官网下载 Android Studio ...

  6. Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...

  7. Android Studio创建安卓项目工程

    Android Studio创建安卓项目工程 前言 因为想抽出时间复习考研因此提前接触安卓的一些开发,在实训的时候就可以不用再听讲学习,节省时间 随着前端混合开发和小程序技术的兴起,安卓开发的需求在日 ...

  8. Android Studio开发安卓app 安卓与webview中的js交互

    Android Studio开发安卓app 安卓与webview中的js交互 1.webview中的页面调用android中的方法 在Android Studio开发安卓app 封装WEB(H5,UR ...

  9. android大疆无人机直播推流VLC

    官方给了直播的方法:startStream,最近公司需求是大疆无人机做直播推流给后台服务器,然后在后台可以看到无人机拍摄的内容,实时监控无人机的状态 因为这个最新的大疆官方给出了方法,所以做起来是非常 ...

最新文章

  1. 英伟达小姐姐的Python隐藏技巧合集,推特2400赞,代码可以直接跑
  2. django项目简单调取百度翻译接口
  3. java 的 非短路_Java 短路运算符和非短路运算符
  4. Android开发之Java基础面试题抽象类和接口的区别
  5. git工作中常用命令
  6. 大学物理光学思维导图_头晕/眩晕问诊最全思维导图,赶紧收藏!
  7. java环境怎么搭,如何搭建一个完整的Java开发环境
  8. 日均请求量1.6万亿次背后,DNSPod的秘密-国密DoH篇
  9. Java中导入Excel文件
  10. CTFHUB Web题解记录(信息泄露、弱口令部分)
  11. 154. 正则表达式匹配
  12. 建站百科|网站Banner风格、样式大解析
  13. 【Java 8 新特性】Java CompletableFuture thenApply()
  14. python生成正态分布矩阵_统计学习 | 矩阵正态分布 (matrix normal distribution)
  15. 【报告分享】2021小红书投放运营指南书-小红书(附下载)
  16. 发现了JMX的好东西,大家分享一下!!
  17. python——tensorflow使用和两层全连接神经网络搭建
  18. mysql dparser.dll_dparser.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  19. 【java】 将服务器上文件夹上所有文件打包并下载
  20. 如何在windows xp[ 下使用自带的播放器播放 mp4、AVI视频

热门文章

  1. JavaScript流程控制-分支结构
  2. 生产前端控制台报504的解决思路
  3. MM模块库存管理移动类型一览表
  4. java萤石云,Android-再次解读萤石云视频
  5. 仿抖音评论底部弹出框(列表框+发表框)
  6. 网络安全——通用渗透测试框架
  7. 怎么用java编程_如何使用java编程方式创建一个odt文件?
  8. ubuntu在线听音乐
  9. Python编写简单的剪刀石头布小程序
  10. 生存分析系列教程(一)使用生信人工具盒进行生存分析