KSYMoviePlayerDefines.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. //
  2. // KSYMoviePlayerDefine.h
  3. // KSYPlayerCore
  4. //
  5. // Copyright © 2016 kingsoft. All rights reserved.
  6. //
  7. //----------------------------------------------
  8. //Types
  9. /**
  10. * 错误码
  11. */
  12. typedef NS_ENUM(NSInteger, KSYMPErrorCode) {
  13. ///正常
  14. KSYMPOK = 0,
  15. ///未知错误
  16. KSYMPErrorCodeUnknownError = 1,
  17. ///读写数据异常
  18. KSYMPErrorCodeFileIOError = -1004,
  19. ///不支持的流媒体协议
  20. KSYMPErrorCodeUnsupportProtocol = -10001,
  21. ///DNS解析失败
  22. KSYMPErrorCodeDNSParseFailed = -10002,
  23. ///创建socket失败
  24. KSYMPErrorCodeCreateSocketFailed = -10003,
  25. ///连接服务器失败
  26. KSYMPErrorCodeConnectServerFailed = -10004,
  27. ///http请求返回400
  28. KSYMPErrorCodeBadRequest = -10005,
  29. ///http请求返回401
  30. KSYMPErrorCodeUnauthorizedClient = -10006,
  31. ///http请求返回403
  32. KSYMPErrorCodeAccessForbidden = -10007,
  33. ///http请求返回404
  34. KSYMPErrorCodeTargetNotFound = -10008,
  35. ///http请求返回4xx
  36. KSYMPErrorCodeOtherErrorCode = -10009,
  37. ///http请求返回5xx
  38. KSYMPErrorCodeServerException = -10010,
  39. ///无效的媒体数据
  40. KSYMPErrorCodeInvalidData = -10011,
  41. ///不支持的视频编码类型
  42. KSYMPErrorCodeUnsupportVideoCodec = -10012,
  43. ///不支持的音频编码类型
  44. KSYMPErrorCodeUnsupportAudioCodec = -10013,
  45. ///视频解码失败
  46. KSYMPErrorCodeVideoDecodeFailed = -10014,
  47. ///音频解码失败
  48. KSYMPErrorCodeAudioDecodeFailed = -10015,
  49. ///次数过多的3xx跳转(8次)
  50. KSYMPErrorCode3xxOverFlow = -10016,
  51. ///无效的url
  52. KSYMPErrorInvalidURL = -10050,
  53. ///网络不通
  54. KSYMPErrorNetworkUnReachable = -10051,
  55. };
  56. /**
  57. * status类型
  58. */
  59. typedef NS_ENUM(NSInteger, MPMovieStatus) {
  60. ///视频解码出错
  61. MPMovieStatusVideoDecodeWrong,
  62. ///音频解码出错
  63. MPMovieStatusAudioDecodeWrong,
  64. ///使用硬件解码
  65. MPMovieStatusHWCodecUsed,
  66. ///使用软件解码
  67. MPMovieStatusSWCodecUsed,
  68. ///使用AVSampleBufferDisplayLayer解码渲染
  69. MPMovieStatusDLCodecUsed,
  70. };
  71. /**
  72. * 视频解码模式
  73. */
  74. typedef NS_ENUM(NSUInteger, MPMovieVideoDecoderMode) {
  75. ///视频解码方式采用软解
  76. MPMovieVideoDecoderMode_Software = 0,
  77. ///视频解码方式采用硬解
  78. MPMovieVideoDecoderMode_Hardware,
  79. ///自动选择解码方式,8.0以上的系统优先选择硬解
  80. MPMovieVideoDecoderMode_AUTO,
  81. ///使用系统接口进行解码和渲染,只适用于8.0及以上系统,低于8.0的系统自动使用软解
  82. MPMovieVideoDecoderMode_DisplayLayer,
  83. };
  84. /**
  85. * reload模式
  86. */
  87. typedef NS_ENUM(NSUInteger, MPMovieReloadMode) {
  88. ///加速播放模式
  89. MPMovieReloadMode_Fast,
  90. ///精确检测模式
  91. MPMovieReloadMode_Accurate,
  92. };
  93. /**
  94. * 视频反交错模式
  95. */
  96. typedef NS_ENUM(NSUInteger, MPMovieVideoDeinterlaceMode) {
  97. ///关闭反交错
  98. MPMovieVideoDeinterlaceMode_None = 0,
  99. ///自动判断是否打开反交错
  100. MPMovieVideoDeinterlaceMode_Auto,
  101. };
  102. /**
  103. * 立体声平衡
  104. */
  105. typedef NS_ENUM(NSInteger, MPMovieAudioPan) {
  106. ///完全左声道
  107. MPMovieAudioPan_Left = -1,
  108. ///左右声道平衡
  109. MPMovieAudioPan_Stereo,
  110. ///完全右声道
  111. MPMovieAudioPan_Right,
  112. };
  113. /**
  114. * Meta类型
  115. */
  116. typedef NS_ENUM(NSInteger, MPMovieMetaType) {
  117. ///当前播放文件的Meta
  118. MPMovieMetaType_Media = 0,
  119. ///当前播放的视频Meta
  120. MPMovieMetaType_Video,
  121. ///当前播放的音频Meta
  122. MPMovieMetaType_Audio,
  123. ///当前播放的字幕Meta
  124. MPMovieMetaType_Subtitle,
  125. };
  126. //----------------------------------------------
  127. /**
  128. * all notification
  129. */
  130. // Posted when the prepared state changes of an object conforming to the MPMediaPlayback protocol changes.
  131. // This supersedes MPMoviePlayerContentPreloadDidFinishNotification.
  132. MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification;
  133. // Posted when the playback state changes, either programatically or by the user.
  134. MP_EXTERN NSString * const MPMoviePlayerPlaybackStateDidChangeNotification;
  135. // Posted when movie playback ends or a user exits playback.
  136. MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishNotification;
  137. MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishReasonUserInfoKey; // NSNumber (MPMovieFinishReason)
  138. // Posted when the network load state changes.
  139. MP_EXTERN NSString * const MPMoviePlayerLoadStateDidChangeNotification;
  140. // Posted when video size available or change
  141. MP_EXTERN NSString * const MPMovieNaturalSizeAvailableNotification;
  142. // Posted when first video/audio render
  143. MP_EXTERN NSString * const MPMoviePlayerFirstVideoFrameRenderedNotification;
  144. MP_EXTERN NSString * const MPMoviePlayerFirstAudioFrameRenderedNotification;
  145. // Posted when should reload url
  146. MP_EXTERN NSString * const MPMoviePlayerSuggestReloadNotification;
  147. // Posted when playback status change
  148. MP_EXTERN NSString * const MPMoviePlayerPlaybackStatusNotification;
  149. MP_EXTERN NSString * const MPMoviePlayerPlaybackStatusUserInfoKey; // NSNumber (MPMovieStatus)
  150. //Posted when the network status change
  151. MP_EXTERN NSString * const MPMoviePlayerNetworkStatusChangeNotification;
  152. MP_EXTERN NSString * const MPMoviePlayerCurrNetworkStatusUserInfoKey; // NSNumber (KSYNetworkStatus)
  153. MP_EXTERN NSString * const MPMoviePlayerLastNetworkStatusUserInfoKey; // NSNumber (KSYNetworkStatus)
  154. MP_EXTERN NSString * const MPMoviePlayerSeekCompleteNotification;
  155. MP_EXTERN NSString *const MPMoviePlayerPlaybackTimedTextNotification;
  156. MP_EXTERN NSString *const MPMoviePlayerPlaybackTimedTextUserInfoKey;
  157. /**
  158. * getMetadata方法对应的关键字
  159. */
  160. MP_EXTERN const NSString *const kKSYPLYFormat;
  161. MP_EXTERN const NSString *const kKSYPLYHttpFirstDataTime;
  162. MP_EXTERN const NSString *const kKSYPLYHttpAnalyzeDns;
  163. MP_EXTERN const NSString *const kKSYPLYHttpConnectTime;
  164. MP_EXTERN const NSString *const kKSYPLYStreams;
  165. MP_EXTERN const NSString *const kKSYPLYStreamType;
  166. MP_EXTERN const NSString *const kKSYPLYCodecName;
  167. MP_EXTERN const NSString *const kKSYPLYStreamIndex;
  168. MP_EXTERN const NSString *const kKSYPLYVideoWidth;
  169. MP_EXTERN const NSString *const kKSYPLYVideoHeight;
  170. MP_EXTERN const NSString *const kKSYPLYAudioSampleRate;
  171. MP_EXTERN const NSString *const kKSYPLYAudioChannelLayout;
  172. MP_EXTERN const NSString *const kKSYPLYAudioChannels;