一、配置文件
1.导入库文件jniLibs到main文件夹下
2.导入red5streaming.jar
3.在build里到入其他的包,代码如下:
1 dependencies { 2 implementation fileTree(dir: 'libs', include: ['*.jar']) 3 implementation 'ch.qos.logback:logback-classic:1.2.3' 4 implementation 'ch.qos.logback:logback-core:1.2.3' 5 implementation 'org.apache.mina:mina-core:2.1.3' 6 implementation 'org.slf4j:slf4j-api:1.7.28' 7 implementation 'com.android.support:support-v4:28.0.0' 8 implementation 'com.googlecode.mp4parser:isoparser:1.1.22' 9 implementation 'com.google.code.gson:gson:2.8.2' 10 implementation files('libs\\red5streaming.jar') 11 }
4.声明权限
1 <uses-permission android:name="android.permission.CAMERA" /><!--拍照--> 2 <uses-permission android:name="android.permission.INTERNET" /><!--网络-->
3 <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"
4 tools:ignore="ProtectedPermissions" /><!--允许应用程序捕获音频输出-->
5 <uses-permission android:name="android.permission.RECORD_AUDIO" /><!--允许录制声音-->
6 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许程序写入外部存储-->
7 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><!--允许程序修改声音设置信息-->
二、布局文件
在你需要显示的布局中加入以下代码即可
1 <com.red5pro.streaming.view.R5VideoView 2 android:id="@+id/videoView" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 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:是不是需要开启硬件加速]
后续续拆解直播和打游戏录屏直播的解释.....请要关注我哦!
本文来自博客园,作者:世界如此简单,转载请注明原文链接:https://www.cnblogs.com/Gxiaoxi/p/13322526.html