1.2.3 • Published 3 years ago

react-native-rtmp-player-jm v1.2.3

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

react-native-rtmp-player-jm npm version

Jimi RTMP Player SDK modules and view for React Native(Android & IOS), support react native 0.57+

Sample

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 属性

PropTypeDefaultDescription
imagerequirenullMonitor视图默认展示图

JMRTMPPlayerManager Methods

MethodListenerResultDescription
initialize(String key, String secret, String imei)null初始化成功RTMP SDK内部初始化
deInitialize()nullnullRTMP SDK 释放(解初始化)
startPlayLive()kOnStreamPlayerPlayStatus见回调说明开始播放
startPlay(String url)kOnStreamPlayerPlayStatus见回调说明使用RTMP URL进行播放
startPlayback(Array fileNameArray)kOnStreamPlayerReceiveDeviceData见回调说明回放文件,参数为文件名称字符串列表
stopPlay()nullnull停止播放
startTalk()kOnStreamPlayerTalkStatus见回调说明开始对讲,iOS会自动申请对讲权限,Android需要自己先申请权限
stopTalk()kOnStreamPlayerTalkStatus见回调说明停止对讲
stop()nullnull停止内部所有功能(播放、对讲,网络请求)
reStart()nullnull重启网关、Web服务
Promise switchCamera(bool isFront, bool bAuto, resolver, rejecter)PromisebAuto,默认请填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)Promisetrue:正在录制;false:未录制视频是否在录制
Promise getRecordingDuration(resolve, rejecter)Promise0视频录制的时长(毫秒)
Promise sendCustomRequest(Map paraDic, resolve, rejecter)Promise0发送自定义指令(请求)
setMute(bool mute)nullnull设置静音
Promise getMute()Promisetrue:静音;false:未静音获取静音状态
Promise videoSize()Promise{"width": 0, "hieght": 0}获取视频宽高,只有视频开始且显示画面之后才有效

JMRTMPPlayerManager Listener:- kOnStreamPlayerPlayStatus

FieldMust ExistTypeValueDescription
statusYESint1~14, "videoStatusPrepare": 正在准备播放; "videoStatusStart": 正在播放; "videoStatusStop": 停止播放;"videoStatusErrURLGet": 获取URL失败;"videoStatusErrURLInvalid": URL无效;"videoStatusErrOpenFail": 打开URL失败;"videoStatusErrOpenTimeout": 打开URL超时;"videoStatusErrPlayAbnormal": 播放异常或设备停止推流(会自动停止播放器);"videoStatusErrHttpTimeout": http请求超时;"videoStatusErrHttpHost": 域名或IP错误;"videoStatusErrHttpParameter": http参数错误;"videoStatusErrServerData": 服务器数据解析异常;"videoStatusErrDeviceReplayFail": 设备回复“失败”;"videoStatusErrNetworkAnomaly": 网络异常;播放状态
errCodeNOint> videoStatusStop,或其他服务器返回错误码播放错误码
errMsgNOint错误提示语错误提示语,仅当 status===videoStatusErrURLGet 时才有

Code:- PlayStatus

CodeDescription
0未启动或未识别的状态
1正在准备播放
2开始或正在播放
3播放结束
4获取URL失败
5URL无效
6打开URL失败
7打开URL超时
8播放异常或设备停止推流(会自动停止播放器)
9http请求超时
10域名或IP错误
11http参数错误
12服务器数据解析异常
13设备回复“失败”及拒绝响应
14网络异常

JMRTMPPlayerManager Listener:- kOnStreamPlayerTalkStatus

FieldMust ExistTypeValueDescription
statusYESint1~14, "talkStatusPrepare": 进行对讲准备工作; "talkStatusStart": 对讲已开始; "talkStatusStop": 对讲已停止;"talkStatusErrURLGet": 获取URL失败;"talkStatusErrInit": 初始化对讲URL失败;"talkStatusErrTalking": 正在对讲不能再次开始;"talkStatusErrSend": 发送音频数据失败;"talkStatusErrHttpTimeout": http请求超时;"talkStatusErrHttpHost": 域名或IP错误;"talkStatusErrHttpParameter": http参数错误;"talkStatusErrServerData": 服务器数据解析异常;"talkStatusErrDeviceReplayFail": 设备回复“失败”;"talkStatusErrNetworkAnomaly": 网络异常;"talkStatusErrAuthority": 无麦克风权限播放状态
errCodeNOint> talkStatusStop,或其他服务器返回错误码播放错误码
errMsgNOint错误提示语错误提示语,仅当 status===talkStatusErrURLGet 时才有

Code:- TalkStatus

CodeDescription
0未启动或未识别的状态
1进行对讲准备工作
2对讲已开始
3对讲已停止
4获取URL失败
5初始化对讲URL失败
6正在对讲不能再次开始
7发送音频数据失败
8http请求超时
9域名或IP错误
10http参数错误
11服务器数据解析异常
12设备回复“失败”,即表示设备端拒绝对讲或对讲初始化异常
13网络异常
14无麦克风权限

JMRTMPPlayerManager Listener:- kOnStreamPlayerRecordStatus

FieldMust ExistTypeValueDescription
statusYESint1~7, "recordStatusStart": 开始录制; "recordStatusComplete": 录制完成; "recordStatusErrRecording": 正在录制;"recordStatusErrFail": 录制失败;"recordStatusErrSave": 保存失败;"recordStatusErrPath": 无效路径;"recordStatusErrAuthority": 无权限;录制状态
filePathYESstring录制视频的保存路径

Code:- RecordStatus

CodeDescription
0未启动或未识别的状态
1开始录制
2录制完成
3正在录制
4录制失败
5保存失败
6无效路径
7无权限

JMRTMPPlayerManager Listener:- kOnStreamPlayerReceiveFrameInfo

FieldMust ExistTypeValueDescription
widthYESint0视频宽度
heightYESint0视频高度
videoBpsYESint0视频每秒码率
audioBPSYESint0音频每秒高度
timestampYESint0视频时间戳
totalFrameCountYESint0视频每秒帧总数
onlineCountYESint0设备端在线的人数

JMRTMPPlayerManager Listener:- kOnStreamPlayerReceiveDeviceData

FieldMust ExistTypeValueDescription
undefineYESundefinenull回复内容由设备端决定,一般是json字符串或字符串

Code:- DeviceData

CodeDescription
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

3 years ago

1.2.2

3 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago