MediaplayerControl.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. //
  2. // MediaplayerControl.h
  3. // FunSDKDemo
  4. //
  5. // Created by XM on 2018/10/17.
  6. // Copyright © 2018年 XM. All rights reserved.
  7. //
  8. /***
  9. 视频预览控制器,继承自 FunMsgListener
  10. 1、视频预览,根据设备序列号和通道信息打开预览
  11. 2、视频预览过程中的抓图录像暂停对讲云台控制等等操作
  12. *****/
  13. #import "FunMsgListener.h"
  14. #import "FunSDK/FunSDK.h"
  15. #import "Header.h"
  16. //播放方式,实时预览和设备回放
  17. enum MediaPlayerType{
  18. MediaPlayerTypeRealPlay,
  19. MediaPlayerTypePlayBack,
  20. };
  21. //播放状态,播放中、停止播放、暂停、恢复等等
  22. enum MediaPlayerStatus {
  23. MediaPlayerStatusStop,
  24. MediaPlayerStatusBuffering,
  25. MediaPlayerStatusPlaying,
  26. MediaPlayerStatusPause,
  27. };
  28. //录像状态,录像中和非录像中
  29. enum MediaRecordType{
  30. MediaRecordTypeNone,
  31. MediaRecordTypeRecording,
  32. };
  33. //音频状态 音频打开和关闭状态
  34. enum MediaVoiceType{
  35. MediaVoiceTypeNone,
  36. MediaVoiceTypeVoice,
  37. };
  38. //对讲状态 对讲中和非对讲中
  39. enum MediaTalkType{
  40. MediaTalkTypeNone,
  41. MediaTalkTypeTalking,
  42. };
  43. //播放速度
  44. enum MediaSpeedState{
  45. MediaSpeedStateNormal,
  46. MediaSpeedStateAdd
  47. };
  48. @class MediaplayerControl;
  49. @protocol MediaplayerControlDelegate <NSObject>
  50. @optional
  51. #pragma mark - 开始结果
  52. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer startResult:(int)result DSSResult:(int)dssResult;
  53. #pragma mark - 缓冲
  54. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer buffering:(BOOL)isBuffering;
  55. #pragma mark - 播放信息
  56. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer info1:(int)nInfo info2:(NSString*)strInfo;
  57. #pragma mark 收到暂停播放结果消息
  58. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer pauseOrResumeResult:(int)result;
  59. #pragma mark - 停止结果
  60. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer stopResult:(int)result;
  61. #pragma mark - 视频回放的时间
  62. -(void)mediaPlayer:(MediaplayerControl *)mediaPlayer timeInfo:(int)timeinfo;
  63. #pragma mark - 设备时间(鱼眼)
  64. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer DevTime:(NSString *)time;
  65. #pragma mark 收到刷新播放的结果消息
  66. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer refreshPlayResult:(int)result;
  67. #pragma mark 收到视频宽高比信息
  68. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer width:(int)width htight:(int)height;
  69. #pragma mark - 录像开始结果
  70. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer startRecordResult:(int)result path:(NSString*)path;
  71. #pragma mark - 录像结束结果
  72. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer stopRecordResult:(int)result path:(NSString*)path;
  73. #pragma mark 抓图结果
  74. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer snapImagePath:(NSString *)path result:(int)result;
  75. #pragma mark 抓取缩略图回调
  76. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer thumbnailImagePath:(NSString *)path result:(int)result;
  77. #pragma mark -鱼眼相关处理
  78. #pragma mark 用户自定义信息帧回调
  79. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer Hardandsoft:(int)Hardandsoft Hardmodel:(int)Hardmodel;
  80. #pragma mark YUV数据回调
  81. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer width:(int)width height:(int)height pYUV:(unsigned char *)pYUV;
  82. #pragma mark 鱼眼软解
  83. -(void)centerOffSetX:(MediaplayerControl*)mediaPlayer offSetx:(short)OffSetx offY:(short)OffSetY radius:(short)radius width:(short)width height:(short)height ;
  84. #pragma mark 鱼眼画面智能分析报警自动旋转画面
  85. -(void)mediaPlayer:(MediaplayerControl*)mediaPlayer AnalyzelLength:(int)length site:(int)type Analyzel:(char*)area;
  86. @end
  87. @interface MediaplayerControl : FunMsgListener
  88. @property (nonatomic, assign) MediaPlayerType type; //媒体类型
  89. @property (nonatomic, assign) MediaPlayerStatus status; //播放状态
  90. @property (nonatomic, assign) MediaRecordType record; //录像状态
  91. @property (nonatomic, assign) MediaVoiceType voice;
  92. @property (nonatomic, assign) MediaTalkType talk; //对讲状态
  93. @property (nonatomic, assign) MediaSpeedState speed; // 播放速度状态
  94. @property (nonatomic, copy) NSString* devID; //设备id
  95. @property (nonatomic, assign) int channel; //通道号
  96. @property (nonatomic, assign) int stream; //码流类型(0:主码流 1:副码流)
  97. @property (nonatomic, assign) FUN_HANDLE player; //播放器句柄
  98. @property (nonatomic, assign) UIView* renderWnd; //渲染窗体
  99. @property (nonatomic, assign) BOOL IsYuv; //是否是鱼眼模式
  100. @property (nonatomic, weak) id<MediaplayerControlDelegate> delegate; //代理
  101. #pragma mark - 开启视频
  102. -(int)start;
  103. #pragma mark - 停止视频
  104. -(int)stop;
  105. #pragma mark - 暂停
  106. -(int)pause;
  107. #pragma mark - 恢复
  108. -(int)resumue;
  109. #pragma mark - 打开音频,传递音频大小,0-100
  110. -(int)openSound:(int)soundValue;
  111. #pragma mark - 关闭音频
  112. -(int)closeSound;
  113. #pragma mark - 抓图
  114. -(int)snapImage;
  115. #pragma mark - 开始录像
  116. -(int)startRecord;
  117. #pragma mark - 停止录像
  118. -(int)stopRecord;
  119. #pragma mark - 设置清晰度,0主码流,1辅码流,-1切换主辅码流
  120. -(void)changeStream:(int)stream;
  121. #pragma mark - 点击云台控制的按钮,开始控制 这个接口没有回调信息
  122. -(void)controZStartlPTAction:(PTZ_ControlType)sender;
  123. #pragma mark - 抬起云台控制的按钮,结束控制 这个接口没有回调信息
  124. -(void)controZStopIPTAction:(PTZ_ControlType)sender;
  125. #pragma mark FunSDK 结果
  126. -(void)OnFunSDKResult:(NSNumber *)pParam;
  127. @end