Commit a6312748 authored by 戴曦嘉's avatar 戴曦嘉
Browse files

2.0.0-beta03

parent 941a491d
......@@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'BJVideoPlayerCore'
s.version = '2.0.0-beta'
s.version = '2.0.0-beta03'
s.summary = 'BJVideoPlayerCore'
s.description = "BJVideoPlayerCore SDK for iOS."
......@@ -41,15 +41,25 @@ Pod::Spec.new do |s|
end
s.subspec 'BJYIJKMediaFramework' do |ss|
ss.xcconfig = {"ENABLE_BITCODE" => "NO"}
ss.frameworks = ["AVFoundation", "GLKit", "VideoToolbox"]
ss.libraries = ["c++", "z", "bz2"]
ss.vendored_frameworks = "frameworks/BJYIJKMediaFramework.framework"
ss.user_target_xcconfig = {
"ENABLE_BITCODE" => "NO" # requies `user_target_xcconfig`
}
ss.source_files = [
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFMoviePlayerController.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKMediaPlayback.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFOptions.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFMonitor.h",
]
ss.private_header_files = [
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFMoviePlayerController.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKMediaPlayback.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFOptions.h",
"frameworks/BJYIJKMediaFramework.framework/**/IJKFFMonitor.h",
]
ss.preserve_paths = ["frameworks/BJYIJKMediaFramework.framework", "frameworks/EmbedFrameworks.sh"]
end
s.dependency 'BJLiveBase', '~> 2.0.0-beta'
s.dependency 'BJLiveBase', '~> 2.0.0-beta03'
s.dependency "BJLiveBase/Download"
s.dependency 'BJLiveBase/Base'
s.dependency 'BJLiveBase/YYModel'
......
framework module BJVideoPlayerCore {
umbrella header "BJVideoPlayerCore.h"
export *
umbrella header "BJVideoPlayerCore.h"
export *
}
......@@ -13,11 +13,17 @@ NS_ASSUME_NONNULL_BEGIN
@interface BJVDefinitionInfo : NSObject <BJLYYModel>
// 是否为纯音频
@property (nonatomic, readonly) BOOL isAudio;
// 清晰度名称,与 definitionKey 一一对应
@property (nonatomic, readonly) NSString *definitionName;
// 清晰度标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频)
@property (nonatomic, readonly) NSString *definitionKey;
// 总时长
@property (nonatomic, readonly) NSInteger duration;
// 文件大小
@property (nonatomic, readonly) NSInteger fileSize;
// 视频画面长度、宽度
@property (nonatomic, readonly) NSInteger width, height;
@end
......
......@@ -14,20 +14,29 @@ NS_ASSUME_NONNULL_BEGIN
@interface BJVDownloadItem : BJLDownloadItem
/** 点播视频 ID*/
@property (nonatomic, readonly, nullable) NSString *videoID;
/** 回放课程、课节 ID*/
@property (nonatomic, readonly, nullable) NSString *classID, *sessionID;
/** 是否为回放 item*/
@property (nonatomic, readonly) BOOL isPlayback;
/** 文件是否加密*/
@property (nonatomic, readonly) BOOL isEncrypted;
@property (nonatomic, nullable) NSString *accessKey;
/** 视频播放信息*/
@property (nonatomic, readonly, nullable) BJVPlayInfo *playInfo;
/** 视频、信令文件 */
@property (nonatomic, readonly, nullable) BJLDownloadFile *videoFile, *signalFile;
/** 封面、水印图片*/
@property (nonatomic, readonly, nullable) BJLDownloadFile *coverImageFile, *watermarkImageFile;
/** 视频清晰度*/
@property (nonatomic, readonly) BJVDefinitionInfo *currentDefinitionInfo;
#pragma mark - readwrite
/** token、集成方鉴权参数*/
@property (nonatomic, nullable) NSString *token, *accessKey;
/** 集成方自定义信息*/
@property (nonatomic, nullable) NSDictionary *userInfo;
@end
......@@ -38,52 +47,52 @@ NS_ASSUME_NONNULL_BEGIN
@interface BJVDownloadManager (BJVDownloadItem)
/**
校验下载任务对象是否可以添加
#return 是否可添加
#discussion 已经添加过/已下载完成 的任务,方法返回 NO
*/
- (BOOL)validateItemWithVideoID:(NSString *)videoID;
- (BOOL)validateItemWithClassID:(NSString *)classID sessionID:(nullable NSString *)sessionID;
- (BOOL)validateItemWithPlayInfo:(BJVPlayInfo *)playInfo;
/**
* 点播
* #param videoID 视频 ID
* #param encrypted 是否加密
* #param accessKey 集成方鉴权, 视频下载如果需要请求第三方服务器查看是否有权限, 可设置该参数。鉴权验证请求需要与百家云后台沟通。
* #param preferredDefinitionList 下载清晰度列表,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
* #discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
* #param customizedInfo 预留字段
* #return 添加成功返回 BJVDownloadItem 实例,videoID 已存在会返回 nil
点播
#param videoID 视频 ID
#param encrypted 是否加密
#param preferredDefinitionList 下载清晰度列表,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
#discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
#param setting 添加成功后用于设置 item 属性的回调
#return 添加成功返回 BJVDownloadItem 实例,videoID 已存在会返回 nil
*/
- (nullable BJVDownloadItem *)addDownloadItemWithVideoID:(NSString *)videoID
encrypted:(BOOL)encrypted
accessKey:(nullable NSString *)accessKey
preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList;
- (nullable BJVDownloadItem *)addDownloadItemWithVideoID:(NSString *)videoID
encrypted:(BOOL)encrypted
accessKey:(nullable NSString *)accessKey
preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList
userInfo:(nullable NSDictionary *)userInfo;
setting:(nullable void (^)(BJVDownloadItem *item))setting;
/**
* 回放
* #param classID 课程 ID
* #param sessionID 课节 ID
* #param encrypted 是否加密
* #param accessKey 集成方鉴权, 视频下载如果需要请求第三方服务器查看是否有权限, 可设置该参数。鉴权验证请求需要与百家云后台沟通。
* #param preferredDefinitionList 下载清晰度列表,列表元素为 NSNumber<BJVDefinitionType> *,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
* #discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
* #param customizedInfo 预留字段
* #return 添加成功返回 BJVDownloadItem 实例,classID+sessionID 已存在会返回 nil
回放
#param classID 课程 ID
#param sessionID 课节 I
#param encrypted 是否加密
#param preferredDefinitionList 下载清晰度列表,列表元素为 NSNumber<BJVDefinitionType> *,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
#discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
#param setting 添加成功后用于设置 item 属性的回调
#return 添加成功返回 BJVDownloadItem 实例,classID+sessionID 已存在会返回 nil
*/
- (nullable BJVDownloadItem *)addDownloadItemWithClassID:(NSString *)classID
sessionID:(nullable NSString *)sessionID
encrypted:(BOOL)encrypted
accessKey:(nullable NSString *)accessKey
preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList;
- (nullable BJVDownloadItem *)addDownloadItemWithClassID:(NSString *)classID
sessionID:(nullable NSString *)sessionID
encrypted:(BOOL)encrypted
accessKey:(nullable NSString *)accessKey
preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList
userInfo:(nullable NSDictionary *)userInfo;
setting:(nullable void (^)(BJVDownloadItem *item))setting;
@end
......
......@@ -13,8 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
@interface BJVMessageVM : BJVBaseVM
@property (nonatomic, readonly, copy, nullable) NSArray<BJVMessage *> *receivedMessages;
// 消息覆盖更新
- (BJLObservable)receivedMessagesDidOverwrite:(nullable NSArray<BJVMessage *> *)messages;
......
//
// BJPUserVM.h
// BJVOnlineUserVM.h
// Pods
//
// Created by 辛亚鹏 on 2017/1/12.
......@@ -32,6 +32,12 @@ NS_ASSUME_NONNULL_BEGIN
同时更新 `onlineUsers` */
- (BJLObservable)onlineUserDidExit:(BJVUser *)user;
/**
音视频用户列表变更
@param mediaUsers 音视频用户列表
*/
- (BJLObservable)mediaUsersDidUpdate:(NSArray<BJVUser *> *)mediaUsers;
@end
NS_ASSUME_NONNULL_END
......@@ -70,6 +70,9 @@ NS_ASSUME_NONNULL_BEGIN
/** 播放视图 */
@property (nonatomic, readonly, nullable) UIView *playerView;
/** 播放视图显示模式 */
@property (nonatomic) BJVPlayerViewScalingMode scalingMode;
#pragma mark - play control:在 setup video 之后调用
/** 播放 */
......@@ -81,14 +84,14 @@ NS_ASSUME_NONNULL_BEGIN
/**
跳转时间
@param time 目标时间
#param time 目标时间
*/
- (void)seek:(NSTimeInterval)time;
/**
换清晰度
换清晰度
@param index 目标清晰度 在 BJV
#param index 目标清晰度 在 BJVPlayInfo 的 definitionList 数组中的序号
*/
- (void)changeDefinitionWithIndex:(NSUInteger)index;
......
......@@ -15,15 +15,31 @@ typedef NS_ENUM(NSInteger, BJVPlayerType) {
};
typedef NS_ENUM(NSInteger, BJVPlayerStatus) {
BJVPlayerStatus_Unload,
BJVPlayerStatus_Loading,
BJVPlayerStatus_Stalled,
BJVPlayerStatus_Ready,
BJVPlayerStatus_Playing,
BJVPlayerStatus_Paused,
BJVPlayerStatus_Failed,
BJVPlayerStatus_ReachEnd,
BJVPlayerStatus_Stopped,
BJVPlayerStatus_unload,
BJVPlayerStatus_loading,
BJVPlayerStatus_stalled,
BJVPlayerStatus_ready,
BJVPlayerStatus_playing,
BJVPlayerStatus_paused,
BJVPlayerStatus_failed,
BJVPlayerStatus_reachEnd,
BJVPlayerStatus_stopped,
BJVPlayerStatus_Unload DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_unload` ") = BJVPlayerStatus_unload,
BJVPlayerStatus_Loading DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_loading` ") = BJVPlayerStatus_loading,
BJVPlayerStatus_Stalled DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_stalled` ") = BJVPlayerStatus_stalled,
BJVPlayerStatus_Ready DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_ready` ") = BJVPlayerStatus_ready,
BJVPlayerStatus_Playing DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_ready` ") = BJVPlayerStatus_playing,
BJVPlayerStatus_Paused DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_paused` ") = BJVPlayerStatus_paused,
BJVPlayerStatus_Failed DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_failed` ") = BJVPlayerStatus_failed,
BJVPlayerStatus_ReachEnd DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_reachEnd` ") = BJVPlayerStatus_reachEnd,
BJVPlayerStatus_Stopped DEPRECATED_MSG_ATTRIBUTE("use `BJVPlayerStatus_stopped` ") = BJVPlayerStatus_stopped
};
typedef NS_ENUM(NSInteger, BJVPlayerViewScalingMode) {
BJVPlayerViewScalingMode_aspectFit,
BJVPlayerViewScalingMode_aspectFill,
BJVPlayerViewScalingMode_fill
};
#endif /* BJVPlayerMacro_h */
......
......@@ -15,9 +15,15 @@ NS_ASSUME_NONNULL_BEGIN
@interface BJVRoomVM : BJVBaseVM
// 回放房间公告
/** 回放房间公告 */
@property (nonatomic, readonly) BJVNotice *notice;
/** 当前是否正在播放媒体文件 */
@property (nonatomic, readonly) BOOL isMediaPlaying;
/** 当前是否正在共享屏幕 */
@property (nonatomic, readonly) BOOL isDesktopSharing;
@end
NS_ASSUME_NONNULL_END
......@@ -27,6 +27,7 @@ FOUNDATION_EXPORT NSString * BJVideoPlayerCoreVersion(void);
@protocol BJVRequestTokenDelegate <NSObject>
@optional
- (void)requestTokenWithVideoID:(NSString *)videoID
completion:(void (^)(NSString * _Nullable token, NSError * _Nullable error))completion;
- (void)requestTokenWithClassID:(NSString *)classID
......@@ -37,7 +38,7 @@ FOUNDATION_EXPORT NSString * BJVideoPlayerCoreVersion(void);
@interface BJVideoPlayerCore : NSObject
@property (class, nonatomic, weak) id<BJVRequestTokenDelegate> tokenDelegate;
@property (class, nonatomic, weak, nullable) id<BJVRequestTokenDelegate> tokenDelegate;
@end
......
#!/bin/bash
# #see http://guides.cocoapods.org/syntax/podfile.html#script_phase
# #see https://stackoverflow.com/questions/40400086/xcode-add-embedded-binary-with-buildscript/40484337#40484337
# export
# #see `BJHLMEDIAPLAYER_WEAK=1` in BJLiveCore.podspec
# if [[ $GCC_PREPROCESSOR_DEFINITIONS != *"BJHLMEDIAPLAYER_WEAK=1"* ]]; then
# exit 0
# fi
framework_name="BJYIJKMediaFramework.framework"
framework_executable="BJYIJKMediaFramework"
pod_frameworks="${1:-Pods/BJVideoPlayerCore/frameworks}"
build_frameworks="$CONFIGURATION_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH"
# echo "app_path: $PWD"
# echo "pod_frameworks: $pod_frameworks"
# echo "build_frameworks: $build_frameworks"
mkdir -p "$build_frameworks"
rm -rf "$build_frameworks/$framework_name"
cp -Rv "$pod_frameworks/$framework_name" "$build_frameworks/$framework_name"
code_sign="$EXPANDED_CODE_SIGN_IDENTITY"
if [ "$code_sign" = "" ] ; then
code_sign="$EXPANDED_CODE_SIGN_IDENTITY_NAME"
fi
if [ "$code_sign" = "" ] ; then
code_sign="$CODE_SIGN_IDENTITY"
fi
codesign --force --verbose --sign "$code_sign" "$build_frameworks/$framework_name/$framework_executable"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment