代码拉取完成,页面将自动刷新
更新日志
v3.2.2
文件包
fpvplayer-v3.2.2.aar
sky-ijkplayer-v1.1.aar
更新内容
云卓播放器:
1.修复BUG
2.RTSP流关闭时没有发送TEARDOWN指令问题
v3.1.6
文件包
fpvplayer-v3.1.6.aar
sky-ijkplayer-v1.1.aar
更新内容
1.RTMP推流功能
2.降低拉流失败时重新拉流频率
v3.0.9
文件包
fpvplayer-v3.0.9.aar
sky-ijkplayer-v1.1.aar
更新内容
1.修复FPVPlayer 在H16上低分辨率硬解码花屏问题
2.修复FPVPlayer 部分情况下重连不上的问题
v3.0.5
文件包
fpvplayer-v3.0.5.aar
sky-ijkplayer-v1.1.aar
更新内容
1.FPVWidget 云卓播放器优化(运行效率,降低CPU占用)
2.FPVReaderWidget 部分情况下宽高设置失败导致黑屏问题修复
v2.9.0
文件包
fpvplayer-v2.9.0.aar
sky-ijkplayer-v1.1.aar
更新内容
1.截图功能
2.IJKPlayer播放器优化
a.关闭部分视频流时不释放问题
b.修改缓存参数
3.云卓播放器优化
a.新增丢包策略
b.其他优化
4.新增串口图传播放控件(适用H12,需要配合RCSDK使用)
v2.8
优化IJKPlayer播放器
1.RTSP流丢包时大片马赛克问题
2.拉流时获取不到宽度高度时,部分硬解码器导致崩溃问题
3.IJKPlayer动态链接库集成到aar
云卓播放器调整
1.提高解码线程的优先级
注意*
如果从v2.8版本以前的版本更新的,需要删除项目的.so文件,因为v2.8及以后的版本在aar中已经集成了相关的.so
需要删除的.so:
jniLibs
arm64-v8a
libijkffmpeg.so
libijkplayer.so
libijksdl.so
armeabi-v7a
libijkffmpeg.so
libijkplayer.so
libijksdl.so
x86
libijkffmpeg.so
libijkplayer.so
libijksdl.so
v2.8及以后ijkplayer-java-release.aar替换为sky-ijkplayer.aar
v2.7.2
云卓播放器优化(处理未丢包的情况下偶尔卡顿跳帧问题)
v2.7.1
图像格式支持NV12、NV21、YV12、I420
v2.6
处理removeView(FPVWidget)后再次addView(FPVWidget)导致黑屏问题
v2.5
处理RTSP流丢包时导致大片马赛克问题
v2.4.1
删除OpenH264相关内容
v2.4
提升出图速度
v2.2
FPVPlayerVersion获取版本号
下载或者克隆Git上的Android示例代码工程:https://gitee.com/skydroid/fpv-player-demo.git
本指引介绍如何将 FPV-Player-Demo 中的 视频SDK包移植到用户的空白项目中
本指引中使用的 Android Studio 版本为 Android Studio Chipmunk | 2021.2.1 Patch 2
SDK所需权限
<uses-permission android:name="android.permission.INTERNET" />
fpvplayer-v2.9.0.aar
sky-ijkplayer-v1.1.aar
将以上SDK AAR导入到项目app/libs中
在 dependencies 项里添加SDK包
implementation files("libs/fpvplayer-v3.2.2.aar")
implementation files("libs/sky-ijkplayer-v1.1.aar")
参照 Demo 的 AndroidManifest.xml添加SDK 需要的最基础权限
<uses-permission android:name="android.permission.INTERNET" />
<com.skydroid.fpvplayer.FPVWidget
android:id="@+id/fpvWidget"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
添加视频播放控件<com.skydroid.fpvplayer.FPVWidget/>
SDK内部会自动重连,开发者无需再关注连接状态及重连逻辑
//设置播放地址
fpvWidget?.url = "rtsp://192.168.144.108:554/stream=0"
//开始播放
fpvWidget?.start()
//停止播放
fpvWidget?.stop()
//使用硬解
fpvWidget?.usingMediaCodec = true
//使用软解
fpvWidget?.usingMediaCodec = false
//修改播放器
PlayerType.AUTO:根据视频流自动选择播放器(默认)
PlayerType.ONLY_SKY:仅使用云卓播放器
PlayerType.ONLY_IJK:仅使用IJKPlayer播放器
fpvWidget?.playerType = PlayerType.AUTO
//修改RTSP流TCP/UDP连接方式
RtspTransport.AUTO:默认(由FFmpeg自动设置)
RtspTransport.UDP:固定UDP连接
RtspTransport.TCP:固定TCP连接
fpvWidget?.rtspTranstype = RtspTransport.AUTO
//监听状态及帧数据
fpvWidget?.onPlayerStateListener = object : OnPlayerStateListener{
override fun onConnected() {
}
override fun onDisconnect() {
}
//在使用IJKPlayer播放器时,onReadFrame无效
override fun onReadFrame(p0: FrameInfo?) {
}
}
//获取版本号
FPVPlayerVersion.getVersion()
注意* 串口图传需要配合RCSDK使用(https://gitee.com/skydroid/rcsdk-demo)
<com.skydroid.fpvplayer.FPVReaderWidget
android:id="@+id/fpvReaderWidget"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
添加视频播放控件<com.skydroid.fpvplayer.FPVReaderWidget/>
//设置解码器类型
//三体相机与双轴云台需要使用OpenH264进行软解
fpvReaderWidget.setVideoDecoderType(FPVReaderWidget.VIDEO_DECODER_TYPE_OPENH264);
//设置参数准备播放
fpvReaderWidget.start(FPVReaderWidget.VIDEO_TYPE_H264,640,360,15);
//停止播放
fpvReaderWidget?.stop()
SDK内部会自动重连,开发者无需再关注连接状态及重连逻辑 *串口通讯部分需要引入RCSDK
//配置串口信息
pipeline = PipelineManager.INSTANCE.createSerialPipeline("/dev/ttyHS0",4000000);
pipeline.setOnCommListener(new CommListener() {
@Override
public void onConnectSuccess() {
//连接串口成功
}
@Override
public void onConnectFail(SkyException e) {
//连接串口失败
}
@Override
public void onDisconnect() {
//串口断开连接
}
@Override
public void onReadData(byte[] bytes) {
//收到串口数据,发送到串口图传播放控件进行解码显示
fpvReaderWidget.sendFrame(bytes);
}
});
//连接串口
PipelineManager.INSTANCE.connectPipeline(pipeline);
//断开串口连接
PipelineManager.INSTANCE.disconnectPipeline(pipeline);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。