Files
sociology_app/uni_modules/zy-AliyunPlayer/ios/AliyunPlayer.framework/Headers/AVPDef.h
2024-07-17 14:06:06 +08:00

404 lines
10 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// AVPDef.h
// AVPSDK
//
// Created by shiping.csp on 2018/11/16.
// Copyright © 2018 com.alibaba.AliyunPlayer. All rights reserved.
//
#ifndef AVPDef_h
#define AVPDef_h
#import <Foundation/Foundation.h>
#if TARGET_OS_OSX
#import <AppKit/AppKit.h>
#define AVPView NSView
#define AVPImage NSImage
#elif TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#define AVPView UIView
#define AVPImage UIImage
#endif // TARGET_OS_OSX
#import "AVPErrorCode.h"
/**
* Convert playback URL before playback.
*
* For vid playback, try to convert the playback URL before playback
*
* @param srcURL [in] input URL.
* @param srcFormat [in] input format. should be "m3u8" "mp4", or "" if unknown.
* @param destURL [out] output URL, convertURL function will malloc the memory, and user of PlayURLConverCallback need free it outside.
*
* @return true if success.
*/
typedef bool (*PlayURLConverCallback)(const char* srcURL, const char* srcFormat, char** destURL);
typedef enum AVPStatus: NSUInteger {
/** @brief 空转,闲时,静态 */
/**** @brief Idle */
AVPStatusIdle = 0,
/** @brief 初始化完成 */
/**** @brief Initialized */
AVPStatusInitialzed,
/** @brief 准备完成 */
/**** @brief Prepared */
AVPStatusPrepared,
/** @brief 正在播放 */
/**** @brief Playing */
AVPStatusStarted,
/** @brief 播放暂停 */
/**** @brief Paused */
AVPStatusPaused,
/** @brief 播放停止 */
/**** @brief Stopped */
AVPStatusStopped,
/** @brief 播放完成 */
/**** @brief Completed */
AVPStatusCompletion,
/** @brief 播放错误 */
/**** @brief Error */
AVPStatusError
} AVPStatus;
/**@brief 跳转模式,是否为精准跳转*/
/****@brief Seeking mode: accurate seeking or inaccurate seeking.*/
typedef enum AVPSeekMode: NSUInteger {
AVP_SEEKMODE_ACCURATE = 0x01,
AVP_SEEKMODE_INACCURATE = 0x10,
} AVPSeekMode;
/**@brief 渲染显示模式*/
/****@brief Zoom mode*/
typedef enum AVPScalingMode: NSUInteger {
/**@brief 不保持比例平铺*/
/****@brief Auto stretch to fit.*/
AVP_SCALINGMODE_SCALETOFILL,
/**@brief 保持比例,黑边*/
/****@brief Keep aspect ratio and add black borders.*/
AVP_SCALINGMODE_SCALEASPECTFIT,
/**@brief 保持比例填充,需裁剪*/
/****@brief Keep aspect ratio and crop.*/
AVP_SCALINGMODE_SCALEASPECTFILL,
} AVPScalingMode;
/**@brief 旋转模式*/
/****@brief Rotate mode*/
typedef enum AVPRotateMode: NSUInteger {
AVP_ROTATE_0 = 0,
AVP_ROTATE_90 = 90,
AVP_ROTATE_180 = 180,
AVP_ROTATE_270 = 270
} AVPRotateMode;
/**@brief 镜像模式*/
/****@brief Mirroring mode*/
typedef enum AVPMirrorMode: NSUInteger {
AVP_MIRRORMODE_NONE,
AVP_MIRRORMODE_HORIZONTAL,
AVP_MIRRORMODE_VERTICAL,
} AVPMirrorMode;
/**@brief 音频输出声道*/
/****@brief Output audio channel*/
typedef enum AVPOutputAudioChannel:NSUInteger {
/**@brief 不指定声道,默认值*/
/****@brief Not specified, default value*/
AVP_AUDIO_CHANNEL_NONE = 0,
/**@brief 左声道*/
/****@brief Left audio channel*/
AVP_AUDIO_CHANNEL_LEFT = 1,
/**@brief 右声道*/
/****@brief Right audio channel*/
AVP_AUDIO_CHANNEL_RIGHT = 2
} AVPOutputAudioChannel;
/**@brief 播放器事件类型*/
/****@brief Player event type*/
typedef enum AVPEventType: NSUInteger {
/**@brief 准备完成事件*/
/****@brief Preparation completion event*/
AVPEventPrepareDone,
/**@brief 自动启播事件*/
/****@brief Autoplay start event*/
AVPEventAutoPlayStart,
/**@brief 首帧显示事件*/
/****@brief First frame display event*/
AVPEventFirstRenderedStart,
/**@brief 播放完成事件*/
/****@brief Playback completion event*/
AVPEventCompletion,
/**@brief 缓冲开始事件*/
/****@brief Buffer start event*/
AVPEventLoadingStart,
/**@brief 缓冲完成事件*/
/****@brief Buffer completion event*/
AVPEventLoadingEnd,
/**@brief 跳转完成事件*/
/****@brief Seeking completion event*/
AVPEventSeekEnd,
/**@brief 循环播放开始事件*/
/****@brief Loop playback start event*/
AVPEventLoopingStart,
} AVPEventType;
/**@brief 获取信息播放器的key*/
/****@brief The key to get property*/
typedef enum AVPPropertyKey: NSUInteger {
/**@brief Http的response信息
* 返回的字符串是JSON数组每个对象带response和type字段。type字段可以是url/video/audio/subtitle根据流是否有相应Track返回。
* 例如:[{"response":"response string","type":"url"},{"response":"","type":"video"}]
*/
/****@brief Http response info
* Return with JSON arrayeach object item include 'response'/'type' filed。'type' could be url/video/audio/subtitle, depend on the stream whether have the tracks。
* For example: [{"response":"response string","type":"url"},{"response":"","type":"video"}]
*/
AVP_KEY_RESPONSE_INFO = 0,
/**@brief 主URL的连接信息
* 返回的字符串是JSON对象带url/ip/eagleID/cdnVia/cdncip/cdnsip等字段如果解析不到则不添加
* 例如:{"url":"http://xxx","openCost":23,"ip":"11.111.111.11","cdnVia":"xxx","cdncip":"22.222.222.22","cdnsip":"xxx"}
*/
/****@brief Major URL connect information
* Return with JSON objectinclude sub fileds such as url/ip/eagleID/cdnVia/cdncip/cdnsip.
* For example: {"url":"http://xxx","openCost":23,"ip":"11.111.111.11","cdnVia":"xxx","cdncip":"22.222.222.22","cdnsip":"xxx"}
*/
AVP_KEY_CONNECT_INFO = 1,
} AVPPropertyKey;
/**@brief IP 解析类型*/
/**@brief IP resolve type*/
typedef enum AVPIpResolveType: NSUInteger {
AVPIpResolveWhatEver,
AVPIpResolveV4,
AVPIpResolveV6,
} AVPIpResolveType;
typedef enum AVPOption : NSUInteger {
/**
* @brief 渲染的fps。类型为Float
*/
/****
* @brief render fps. Return value type is Float
*/
AVP_OPTION_RENDER_FPS = 0,
/**
* 当前的网络下行码率。类型为Float
*/
/****
* current download bitrate. Return value type is Float
*/
AVP_OPTION_DOWNLOAD_BITRATE = 1,
/**
* 当前播放的视频码率。类型为Float
*/
/****
* current playback video bitrate. Return value type is Float
*/
AVP_OPTION_VIDEO_BITRATE = 2,
/**
* 当前播放的音频码率。类型为Float
*/
/****
* current playback audio bitrate. Return value type is Float
*/
AVP_OPTION_AUDIO_BITRATE = 3,
} AVPOption;
/**
* 策略类型
*/
/****
* strategy type
*/
typedef enum AVPStrategyType : NSUInteger {
/**
* 动态预加载时长策略
*/
/****
* dynamic preload duration strategy.
*/
AVP_STRATEGY_DYNAMIC_PRELOAD = 1,
} AVPStrategyType;
/**
* 场景类型
*/
/****
* scene type
*/
typedef enum AVPSceneType : NSInteger {
/**
* 场景:无
*/
/****
* scene none
*/
AVP_SCENE_NONE = -1,
/**
* 超短视频场景适用于30s以下
*/
/****
* very short scene: apply to less 30s
*/
AVP_VERY_SHOR_VIDEO = 0,
/**
* 短视频场景适用于30s-5min
*/
/****
* short scene: apply to 30-5min
*/
AVP_SHORT_VIDEO = 1,
/**
* 中视频场景适用于5min-30min
*/
/****
* middle scene: apply to 5min-30min
*/
AVP_MIDDLE_VIDEO = 2,
/**
* 长视频场景适用于30min以上
*/
/****
* long scene: apply to more than 30min
*/
AVP_LONG_VIDEO = 3,
} AVPSceneType;
/**
@brief AVPErrorModel为播放错误信息描述
*/
/****
@brief AVPErrorModel represents playback error descriptions.
*/
OBJC_EXPORT
@interface AVPErrorModel : NSObject
/**
@brief code为播放错误信息code
*/
/****
@brief code represents a playback error code.
*/
@property (nonatomic, assign) AVPErrorCode code;
/**
@brief message为播放错误信息描述
*/
/****
@brief message represents a playback error message.
*/
@property (nonatomic, copy) NSString *message;
/**
@brief extra为播放错误信息描述的附加信息
*/
/****
@brief extra represents an additional playback error message.
*/
@property (nonatomic, copy) NSString *extra;
/**
@brief requestId为播放错误信息requestID
*/
/****
@brief requestId represents the request ID of a playback error.
*/
@property (nonatomic, copy) NSString *requestId;
/**
@brief videoId为播放错误发生的videoID
*/
/****
@brief videoId represents the VID of the video that has a playback error.
*/
@property (nonatomic, copy) NSString *videoId;
@end
/**
@brief AVPTimeShiftModel直播时移描述
*/
/****
@brief AVPTimeShiftModel represents broadcasting timeshift descriptions.
*/
OBJC_EXPORT
@interface AVPTimeShiftModel : NSObject
/**
@brief startTime直播时移开始时间
*/
/****
@brief startTime represents the start of the time range for broadcasting timeshift.
*/
@property (nonatomic, assign) NSTimeInterval startTime;
/**
@brief endTime直播时移结束时间
*/
/****
@brief endTime represents the end of the time range for broadcasting timeshift.
*/
@property (nonatomic, assign) NSTimeInterval endTime;
/**
@brief currentTime直播时移当前时间
*/
/****
@brief currentTime represents the time that broadcasting timeshift seeks to.
*/
@property (nonatomic, assign) NSTimeInterval currentTime;
@end
/**
@brief logLevel
*/
typedef enum AVPLogLevel: NSUInteger {
LOG_LEVEL_NONE = 0,
LOG_LEVEL_FATAL = 8,
LOG_LEVEL_ERROR = 16,
LOG_LEVEL_WARNING = 24,
LOG_LEVEL_INFO = 32,
LOG_LEVEL_DEBUG = 48,
LOG_LEVEL_TRACE = 56,
} AVPLogLevel;
typedef enum _AVPStsStatus {
Valid,
Invalid,
Pending } AVPStsStatus;
typedef struct _AVPStsInfo {
NSString *accId;
NSString *accSecret;
NSString *token;
NSString *region;
NSString *formats;
} AVPStsInfo;
/**
@brief 是否支持的功能的类型
*/
/****
@brief The type of the feature.
*/
typedef enum _SupportFeatureType : NSUInteger {
/**
* 硬件是否支持杜比音频
*/
/****
* whether the device support Dolby Audio.
*/
FeatureDolbyAudio
} SupportFeatureType;
#endif /* AVPDef_h */