1.2.3 • Published 4 years ago
react-native-rtmp-player-jm v1.2.3
react-native-rtmp-player-jm 
Jimi RTMP Player SDK modules and view for React Native(Android & IOS), support react native 0.57+

Environments 环境要求
1.JS
- node: 8.0+
2.Android
- Android SDK: api 28+
- gradle: 4.5
- Android Studio: 3.1.3+
3.IOS
- XCode: 9.0+
Install 安装
使用 npm 源
npm install react-native-rtmp-player-jm --save
原生模块导入
Android Studio
react-native link react-native-rtmp-player-jm
IOS/Xcode
1、方式一:react-native link react-native-rtmp-player-jm
2、方式二:
Podfile 增加
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
'RCTText',
'RCTNetwork',
'RCTWebSocket',
'RCTAnimation'
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'react-native-rtmp-player-jm', :podspec => '../node_modules/react-native-rtmp-player-jm/ios/react-native-rtmp-player-jm.podspec'Usage 使用方法
import { Platform, NativeModules, NativeEventEmitter } from 'react-native';
import { JMRTMPMonitorView} from 'react-native-rtmp-player-jm';
const { JMRTMPPlayerManager } = NativeModules;JMRTMPMonitorView Props 属性
| Prop | Type | Default | Description |
|---|---|---|---|
| image | require | null | Monitor视图默认展示图 |
JMRTMPPlayerManager Methods
| Method | Listener | Result | Description |
|---|---|---|---|
| initialize(String key, String secret, String imei) | null | 初始化成功 | RTMP SDK内部初始化 |
| deInitialize() | null | null | RTMP SDK 释放(解初始化) |
| startPlayLive() | kOnStreamPlayerPlayStatus | 见回调说明 | 开始播放 |
| startPlay(String url) | kOnStreamPlayerPlayStatus | 见回调说明 | 使用RTMP URL进行播放 |
| startPlayback(Array fileNameArray) | kOnStreamPlayerReceiveDeviceData | 见回调说明 | 回放文件,参数为文件名称字符串列表 |
| stopPlay() | null | null | 停止播放 |
| startTalk() | kOnStreamPlayerTalkStatus | 见回调说明 | 开始对讲,iOS会自动申请对讲权限,Android需要自己先申请权限 |
| stopTalk() | kOnStreamPlayerTalkStatus | 见回调说明 | 停止对讲 |
| stop() | null | null | 停止内部所有功能(播放、对讲,网络请求) |
| reStart() | null | null | 重启网关、Web服务 |
| Promise switchCamera(bool isFront, bool bAuto, resolver, rejecter) | Promise | bAuto,默认请填true,成功返回url,否则错误码及错误信息,比如:{ Error: 设备不在线 code: '228'} | 切换摄像头 |
| Promise snapshot(String filePath) | Promise | 成功返回保存后的图片路径,否则错误码及错误信息,比如:{ Error: Failed to do snapshot code: '-1'} | 视频截图,filePath:需要保存图片的绝对路径,必须以".png"结尾,code:-1,截图失败,-2:保存图片失败,-3:格式无效 |
| startRecording(String filePath) | kOnStreamPlayerRecordStatus | 见回调说明 | mp4视频录制,filePath:需要保存视频的绝对路径(iOS默认只录制在沙盒,必须以".mp4"结尾) |
| stopRecording() | kOnStreamPlayerRecordStatus | 见回调说明 | 停止视频录制 |
| Promise isRecording(resolve, rejecter) | Promise | true:正在录制;false:未录制 | 视频是否在录制 |
| Promise getRecordingDuration(resolve, rejecter) | Promise | 0 | 视频录制的时长(毫秒) |
| Promise sendCustomRequest(Map paraDic, resolve, rejecter) | Promise | 0 | 发送自定义指令(请求) |
| setMute(bool mute) | null | null | 设置静音 |
| Promise getMute() | Promise | true:静音;false:未静音 | 获取静音状态 |
| Promise videoSize() | Promise | {"width": 0, "hieght": 0} | 获取视频宽高,只有视频开始且显示画面之后才有效 |
JMRTMPPlayerManager Listener:- kOnStreamPlayerPlayStatus
| Field | Must Exist | Type | Value | Description |
|---|---|---|---|---|
| status | YES | int | 1~14, "videoStatusPrepare": 正在准备播放; "videoStatusStart": 正在播放; "videoStatusStop": 停止播放;"videoStatusErrURLGet": 获取URL失败;"videoStatusErrURLInvalid": URL无效;"videoStatusErrOpenFail": 打开URL失败;"videoStatusErrOpenTimeout": 打开URL超时;"videoStatusErrPlayAbnormal": 播放异常或设备停止推流(会自动停止播放器);"videoStatusErrHttpTimeout": http请求超时;"videoStatusErrHttpHost": 域名或IP错误;"videoStatusErrHttpParameter": http参数错误;"videoStatusErrServerData": 服务器数据解析异常;"videoStatusErrDeviceReplayFail": 设备回复“失败”;"videoStatusErrNetworkAnomaly": 网络异常; | 播放状态 |
| errCode | NO | int | > videoStatusStop,或其他服务器返回错误码 | 播放错误码 |
| errMsg | NO | int | 错误提示语 | 错误提示语,仅当 status===videoStatusErrURLGet 时才有 |
Code:- PlayStatus
| Code | Description |
|---|---|
| 0 | 未启动或未识别的状态 |
| 1 | 正在准备播放 |
| 2 | 开始或正在播放 |
| 3 | 播放结束 |
| 4 | 获取URL失败 |
| 5 | URL无效 |
| 6 | 打开URL失败 |
| 7 | 打开URL超时 |
| 8 | 播放异常或设备停止推流(会自动停止播放器) |
| 9 | http请求超时 |
| 10 | 域名或IP错误 |
| 11 | http参数错误 |
| 12 | 服务器数据解析异常 |
| 13 | 设备回复“失败”及拒绝响应 |
| 14 | 网络异常 |
JMRTMPPlayerManager Listener:- kOnStreamPlayerTalkStatus
| Field | Must Exist | Type | Value | Description |
|---|---|---|---|---|
| status | YES | int | 1~14, "talkStatusPrepare": 进行对讲准备工作; "talkStatusStart": 对讲已开始; "talkStatusStop": 对讲已停止;"talkStatusErrURLGet": 获取URL失败;"talkStatusErrInit": 初始化对讲URL失败;"talkStatusErrTalking": 正在对讲不能再次开始;"talkStatusErrSend": 发送音频数据失败;"talkStatusErrHttpTimeout": http请求超时;"talkStatusErrHttpHost": 域名或IP错误;"talkStatusErrHttpParameter": http参数错误;"talkStatusErrServerData": 服务器数据解析异常;"talkStatusErrDeviceReplayFail": 设备回复“失败”;"talkStatusErrNetworkAnomaly": 网络异常;"talkStatusErrAuthority": 无麦克风权限 | 播放状态 |
| errCode | NO | int | > talkStatusStop,或其他服务器返回错误码 | 播放错误码 |
| errMsg | NO | int | 错误提示语 | 错误提示语,仅当 status===talkStatusErrURLGet 时才有 |
Code:- TalkStatus
| Code | Description |
|---|---|
| 0 | 未启动或未识别的状态 |
| 1 | 进行对讲准备工作 |
| 2 | 对讲已开始 |
| 3 | 对讲已停止 |
| 4 | 获取URL失败 |
| 5 | 初始化对讲URL失败 |
| 6 | 正在对讲不能再次开始 |
| 7 | 发送音频数据失败 |
| 8 | http请求超时 |
| 9 | 域名或IP错误 |
| 10 | http参数错误 |
| 11 | 服务器数据解析异常 |
| 12 | 设备回复“失败”,即表示设备端拒绝对讲或对讲初始化异常 |
| 13 | 网络异常 |
| 14 | 无麦克风权限 |
JMRTMPPlayerManager Listener:- kOnStreamPlayerRecordStatus
| Field | Must Exist | Type | Value | Description |
|---|---|---|---|---|
| status | YES | int | 1~7, "recordStatusStart": 开始录制; "recordStatusComplete": 录制完成; "recordStatusErrRecording": 正在录制;"recordStatusErrFail": 录制失败;"recordStatusErrSave": 保存失败;"recordStatusErrPath": 无效路径;"recordStatusErrAuthority": 无权限; | 录制状态 |
| filePath | YES | string | 录制视频的保存路径 |
Code:- RecordStatus
| Code | Description |
|---|---|
| 0 | 未启动或未识别的状态 |
| 1 | 开始录制 |
| 2 | 录制完成 |
| 3 | 正在录制 |
| 4 | 录制失败 |
| 5 | 保存失败 |
| 6 | 无效路径 |
| 7 | 无权限 |
JMRTMPPlayerManager Listener:- kOnStreamPlayerReceiveFrameInfo
| Field | Must Exist | Type | Value | Description |
|---|---|---|---|---|
| width | YES | int | 0 | 视频宽度 |
| height | YES | int | 0 | 视频高度 |
| videoBps | YES | int | 0 | 视频每秒码率 |
| audioBPS | YES | int | 0 | 音频每秒高度 |
| timestamp | YES | int | 0 | 视频时间戳 |
| totalFrameCount | YES | int | 0 | 视频每秒帧总数 |
| onlineCount | YES | int | 0 | 设备端在线的人数 |
JMRTMPPlayerManager Listener:- kOnStreamPlayerReceiveDeviceData
| Field | Must Exist | Type | Value | Description |
|---|---|---|---|---|
| undefine | YES | undefine | null | 回复内容由设备端决定,一般是json字符串或字符串 |
Code:- DeviceData
| Code | Description |
|---|---|
| 0x3 | 设备端SDK信息 |
| 0x5 | 响应客户端SDK释放请求 |
| 0x10 | 在线人数信息 |
| 0x108 | 单个回放文件结尾 |
| 0x109 | 所有回放文件结束 |
Demo示例
https://github.com//Eafy/react-native-rtmp-player-jm/tree/master/example/App.js
1.2.3
4 years ago
1.2.2
4 years ago
1.2.1
5 years ago
1.2.0
5 years ago
1.1.9
6 years ago
1.1.8
6 years ago
1.1.7
6 years ago
1.1.6
6 years ago
1.1.5
6 years ago
1.1.4
6 years ago
1.1.3
6 years ago
1.1.2
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.0.9
6 years ago
1.0.8
6 years ago
1.0.7
6 years ago
1.0.6
6 years ago
1.0.5
6 years ago
1.0.4
6 years ago
1.0.3
6 years ago
1.0.2
6 years ago
1.0.1
6 years ago
1.0.0
6 years ago