# FPV-Player-Demo
**Repository Path**: yuyichen2025/fpv-player-demo
## Basic Information
- **Project Name**: FPV-Player-Demo
- **Description**: 云卓图传播放器Demo
- **Primary Language**: Android
- **License**: Not specified
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 8
- **Created**: 2023-09-26
- **Last Updated**: 2023-09-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
更新日志
```
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获取版本号
```
# Demo 工程
下载或者克隆Git上的Android示例代码工程:https://gitee.com/skydroid/fpv-player-demo.git
# 空白项目集成 SDK
本指引介绍如何将 FPV-Player-Demo 中的 视频SDK包移植到用户的空白项目中
```
本指引中使用的 Android Studio 版本为 Android Studio Chipmunk | 2021.2.1 Patch 2
SDK所需权限
```
- ### 导入SDK AAR包
```
fpvplayer-v2.7.2.aar
ijkplayer-java-release.aar
```
将以上SDK AAR导入到项目app/libs中
- ### 导入SDK 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
```
参考Demo,将以上 jniLibs 导入到项目app/src/main中
- ### 修改build.gradle(app) 文件
在 dependencies 项里添加SDK包
```
implementation files("libs/fpvplayer-v2.7.2.aar")
implementation files("libs/ijkplayer-java-release.aar")
```
- ### 修改 AndroidManifest.xml 文件
参照 Demo 的 AndroidManifest.xml添加SDK 需要的最基础权限
```
```
- ### 布局文件添加控件
```
```
添加视频播放控件
- ### 播放视频
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()
```