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