使用Red5-Pro Android官方Demo拆解分析(一)
一、配置文件
1.导入库文件jniLibs到main文件夹下
2.导入red5streaming.jar
3.在build里到入其他的包,代码如下:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'ch.qos.logback:logback-classic:1.2.3'
implementation 'ch.qos.logback:logback-core:1.2.3'
implementation 'org.apache.mina:mina-core:2.1.3'
implementation 'org.slf4j:slf4j-api:1.7.28'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.googlecode.mp4parser:isoparser:1.1.22'
implementation 'com.google.code.gson:gson:2.8.2'
implementation files('libs\\red5streaming.jar')
}
4.声明权限
<uses-permission android:name="android.permission.CAMERA" /><!--拍照-->
<uses-permission android:name="android.permission.INTERNET" /><!--网络-->
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"
tools:ignore="ProtectedPermissions" /><!--允许应用程序捕获音频输出-->
<uses-permission android:name="android.permission.RECORD_AUDIO" /><!--允许录制声音-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许程序写入外部存储-->
7 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><!--允许程序修改声音设置信息-->
二、布局文件
在你需要显示的布局中加入以下代码即可
<com.red5pro.streaming.view.R5VideoView
android:id="@+id/videoView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
三、具体实现的代码
1.实现R5ConnectionListener接口里的方法(onConnectionEvent这是连接的监听)
2.通过R5ConnectionEvent枚举里可拿到一个变量,两个方法。可以通过监听里拿到的R5ConnectionEvent和系统里的作判断
2-1-1) message;
2-1-2) name(); value();[==eventCode]
2-2.R5ConnectionEvent枚举里所有的值
CONNECTED(0),//已连接状态
DISCONNECTED(1),//断开状态
ERROR(2),//异常状态
TIMEOUT(3),//超时
CLOSE(4),//关闭通道
START_STREAMING(5),//启动-流媒体
STOP_STREAMING(6),//停止流媒体
NET_STATUS(7),//网络状况
AUDIO_MUTE(8),//音频静音
AUDIO_UNMUTE(9),//音频取消静音
VIDEO_MUTE(10),//视频静音
VIDEO_UNMUTE(11),//视频取消静音
LICENSE_ERROR(12),//sdk 许可证出现错误
LICENSE_VALID(13),//许可证有效
BUFFER_FLUSH_START(14),//缓冲器冲洗启动
BUFFER_FLUSH_EMPTY(15),//缓冲区冲洗空
VIDEO_RENDER_START(16),//视频渲染开始
ABR_LEVEL_CHANGED(17),//ABR_级别_已更改
SRTP_KEY_GEN_ERROR(18),//SRTP密钥生成错误
SRTP_KEY_HANDLE_ERROR(19);//SRTP_KEY_HANDLE异常
3.具体连接和观看直播的代码书写
R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP,"192.168.1.103",8554,"live",0.5f);
config.setLicenseKey("********");//[属性1:协议,属性2:主机地址,属性3:端口,属性4:上下文名称(应该可随意填写还没试过),属性5:缓冲时间]
config.setBundleID(this.getPackageName());//给他一个id就行 R5Connection connection = new R5Connection(config);//R5连接对象 //setup a new stream using the connection
subscribe = new R5Stream(connection);//推流还是流的来源都是这个 subscribe.audioController = new R5AudioController();//new red5里面的音频控制器给subscribe
subscribe.audioController.sampleRate = 44100;//采样频率 subscribe.client = this;
subscribe.setListener(this); //show all logging
subscribe.setLogLevel(R5Stream.LOG_LEVEL_DEBUG); //display.setZOrderOnTop(true);
display.attachStream(subscribe);//附加流 display.showDebugView(true);//设置显示调试
subscribe.play("stream1", true);//开始播放[属性1:播放的流名字 属性2:是不是需要开启硬件加速]
后续续拆解直播和打游戏录屏直播的解释.....请要关注我哦!
使用Red5-Pro Android官方Demo拆解分析(一)的更多相关文章
- android 官方demo地址
android官方demo地址都放在了github上:https://github.com/googlesamples
- [Android Pro] Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- [Android Pro] android root权限破解分析
许 多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简 单及安全的,破解Root权限的原理就是在手机的/s ...
- Android 官方DEMO - ActionBarCompat-Basic
ActionBarCompat-Basic Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Basic/#readm ...
- Android 官方DEMO BasicNetworking
本示例演示如何使用Android API检查网络连接. Demo下载地址:https://github.com/googlesamples/android-BasicNetworking/#readm ...
- Android 官方Demo ActionBarCompat-Styled
ActionBarCompat-Styled Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Styled/#rea ...
- 如何成功实施SDL提供的官方Android平台Demo
如何成功实施SDL提供的官方Android平台Demo 作者:雨水 日期:2014-4-30 编写说明:SDL的官方提供了一个Anroid的demo模板SDLActivity,无法直接执行,依照官方 ...
- (原创)cocos2dx-lua TableView官方demo分析
本来是想看看网上的教程文章,结果看了好几篇,复制代码各种报错,有很多不存在的类和变量,根本用不了. 所以干脆自己去看官方demo,经过自己分析测试,已经大概会用了,顺便记录一下. 以下是代码,复制粘贴 ...
- RobotFramework 官方demo Quick Start Guide rst配置文件分析
RobotFramework官方demo Quick Start Guide rst配置文件分析 by:授客 QQ:1033553122 博客:http://blog.sina.com.c ...
随机推荐
- 深入理解 EF Core:EF Core 写入数据时发生了什么?
阅读本文大概需要 14 分钟. 原文:https://bit.ly/2C67m1C 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能 ...
- vue 入门, todoList
# 实现逻辑: > * 技术栈> 1. 生命周期,creatd( 创建后执行)> 2. methods': 调用事件方法,结果不会缓存> 3. Watch : 监听器,监听输 ...
- 多线程高并发编程(12) -- 阻塞算法实现ArrayBlockingQueue源码分析(1)
一.前言 前文探究了非阻塞算法的实现ConcurrentLinkedQueue安全队列,也说明了阻塞算法实现的两种方式,使用一把锁(出队和入队同一把锁ArrayBlockingQueue)和两把锁(出 ...
- 为什么 char c = 'A';c += 32; 结果输出的是 'a'?
首先 char 类型的数据只要参与运行会先转换为 int 类型数值(在 ASCII 编码表中 'A' 对应十进制的 65),那么 'A' 转换为 int 为 65,65 + 32 = 97,+= 包含 ...
- 学写PEP,参与Python语言的设计
如果你为Python写了一篇PEP,这篇PEP成功的被Python指导委员会接受了,那么以后你在吹牛皮的时候你就可以说我主导了Python语言某个特性的设计工作. -- 跬蟒 我就问你主导Python ...
- JDK8--03:lambda表达式语法
对于lambda表达式的基础语法,一个是要了解lambda表达式的基础语法,另外一个是需要了解函数式接口 一.lambda表达式基础语法描述 java8中引入了新的操作符 -> ,可以称为l ...
- SpringBoot--swagger搭建、配置及使用
一. 作用: 1. 接口的文档在线自动生成. 2. 接口测试. 二.模块介绍 Swagger是一组开源项目,其中主要要项目及功能如下: 1.Swagger Codegen: 通过Codegen 可以将 ...
- Python内置函数和内置常量
Python内置函数 1.abs(x) 返回一个数的绝对值.实参可以是整数或浮点数.如果实参是一个复数,返回它的模. 2.all(iterable) 如果 iterable 的所有元素为真(或迭代器为 ...
- day01微信小程序
一.基本概要 1.一个程序接口,可以集成很多功能,也就是在程序上再次开发 腾讯:微信+小程序 阿里:支付宝 +小程序 小程序的使用量很多 2.为什么要微信小程序? 1.微信用户群体大 2.容易推广, ...
- 安卓移动端line-height垂直居中出现偏移的原因,及解决方法
目前在移动端安卓手机上使用line-height属性,让它的值等于height,结果发现是不居中的.出现了一定位置的偏移情况,如果略微只有两三个像素差距是看不出来的. 左图中的字号是12px,右图中的 ...