Commit ba3706f8 by zhangyunjie

2.6.4.0

parent 5679a0aa
......@@ -13,13 +13,28 @@
6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; };
6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; };
6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; };
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; };
6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; };
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; };
71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */; };
A95923162484B533007F5131 /* iOSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A95923142484B533007F5131 /* iOSViewController.m */; };
A95923172484B533007F5131 /* iOSAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A95923152484B533007F5131 /* iOSAppDelegate.m */; };
A95923192484B53F007F5131 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A95923182484B53E007F5131 /* Main.storyboard */; };
B8933FFBD1D391986A823AB0 /* Pods_OffcnLiveSDKiOS_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A89BE439C54D2FF6CA0FDAEC /* Pods_OffcnLiveSDKiOS_Example.framework */; };
E031BC5A6D1684C7FC29ACF1 /* Pods_OffcnLiveSDKiOS_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54CBC425CF8AC01BB87AC75D /* Pods_OffcnLiveSDKiOS_Tests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
6003F5B3195388D20070C39A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 6003F582195388D10070C39A /* Project object */;
proxyType = 1;
remoteGlobalIDString = 6003F589195388D20070C39A;
remoteInfo = OffcnLiveSDKiOS;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
54CBC425CF8AC01BB87AC75D /* Pods_OffcnLiveSDKiOS_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OffcnLiveSDKiOS_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6003F58A195388D20070C39A /* OffcnLiveSDKiOS_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OffcnLiveSDKiOS_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
......@@ -31,6 +46,7 @@
6003F599195388D20070C39A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
6003F59B195388D20070C39A /* OffcnLiveSDKiOS-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OffcnLiveSDKiOS-Prefix.pch"; sourceTree = "<group>"; };
6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
6003F5AE195388D20070C39A /* OffcnLiveSDKiOS_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OffcnLiveSDKiOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
......@@ -60,7 +76,17 @@
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
6003F592195388D20070C39A /* UIKit.framework in Frameworks */,
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */,
B8933FFBD1D391986A823AB0 /* Pods_OffcnLiveSDKiOS_Example.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
6003F5AB195388D20070C39A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */,
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */,
6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */,
E031BC5A6D1684C7FC29ACF1 /* Pods_OffcnLiveSDKiOS_Tests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -83,6 +109,7 @@
isa = PBXGroup;
children = (
6003F58A195388D20070C39A /* OffcnLiveSDKiOS_Example.app */,
6003F5AE195388D20070C39A /* OffcnLiveSDKiOS_Tests.xctest */,
);
name = Products;
sourceTree = "<group>";
......@@ -190,6 +217,25 @@
productReference = 6003F58A195388D20070C39A /* OffcnLiveSDKiOS_Example.app */;
productType = "com.apple.product-type.application";
};
6003F5AD195388D20070C39A /* OffcnLiveSDKiOS_Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "OffcnLiveSDKiOS_Tests" */;
buildPhases = (
D38BB11B7A3D4118D290BDDF /* [CP] Check Pods Manifest.lock */,
6003F5AA195388D20070C39A /* Sources */,
6003F5AB195388D20070C39A /* Frameworks */,
6003F5AC195388D20070C39A /* Resources */,
);
buildRules = (
);
dependencies = (
6003F5B4195388D20070C39A /* PBXTargetDependency */,
);
name = OffcnLiveSDKiOS_Tests;
productName = OffcnLiveSDKiOSTests;
productReference = 6003F5AE195388D20070C39A /* OffcnLiveSDKiOS_Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
......@@ -204,6 +250,9 @@
DevelopmentTeam = 4P2C5EPJRW;
ProvisioningStyle = Automatic;
};
6003F5AD195388D20070C39A = {
TestTargetID = 6003F589195388D20070C39A;
};
};
};
buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "OffcnLiveSDKiOS" */;
......@@ -221,6 +270,7 @@
projectRoot = "";
targets = (
6003F589195388D20070C39A /* OffcnLiveSDKiOS_Example */,
6003F5AD195388D20070C39A /* OffcnLiveSDKiOS_Tests */,
);
};
/* End PBXProject section */
......@@ -237,6 +287,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
6003F5AC195388D20070C39A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
......@@ -288,11 +346,13 @@
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-OffcnLiveSDKiOS_Example/Pods-OffcnLiveSDKiOS_Example-frameworks.sh",
"${PODS_ROOT}/../../OffcnLiveSDKiOS/Frameworks/ZGIJKMediaFramework.framework",
"${PODS_ROOT}/../../OffcnLiveSDKiOS/Frameworks/OffcnWhiteBoard.framework",
"${PODS_ROOT}/../../OffcnLiveSDKiOS/Frameworks/WebRTC.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZGIJKMediaFramework.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OffcnWhiteBoard.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
);
runOnlyForDeploymentPostprocessing = 0;
......@@ -300,6 +360,28 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OffcnLiveSDKiOS_Example/Pods-OffcnLiveSDKiOS_Example-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
D38BB11B7A3D4118D290BDDF /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-OffcnLiveSDKiOS_Tests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
......@@ -313,8 +395,24 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
6003F5AA195388D20070C39A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6003F5BC195388D20070C39A /* Tests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
6003F5B4195388D20070C39A /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 6003F589195388D20070C39A /* OffcnLiveSDKiOS_Example */;
targetProxy = 6003F5B3195388D20070C39A /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
6003F596195388D20070C39A /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
......@@ -376,7 +474,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
......@@ -409,7 +507,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
......@@ -428,10 +526,10 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "OffcnLiveSDKiOS/OffcnLiveSDKiOS-Prefix.pch";
INFOPLIST_FILE = "OffcnLiveSDKiOS/OffcnLiveSDKiOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MODULE_NAME = ExampleApp;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_BUNDLE_IDENTIFIER = offcn;
PRODUCT_BUNDLE_IDENTIFIER = offcn1;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 4.0;
......@@ -451,9 +549,9 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "OffcnLiveSDKiOS/OffcnLiveSDKiOS-Prefix.pch";
INFOPLIST_FILE = "OffcnLiveSDKiOS/OffcnLiveSDKiOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MODULE_NAME = ExampleApp;
PRODUCT_BUNDLE_IDENTIFIER = offcn;
PRODUCT_BUNDLE_IDENTIFIER = offcn1;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 4.0;
......@@ -461,6 +559,52 @@
};
name = Release;
};
6003F5C3195388D20070C39A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6EAC98A55AAEFAF603A14625 /* Pods-OffcnLiveSDKiOS_Tests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OffcnLiveSDKiOS_Example.app/OffcnLiveSDKiOS_Example";
WRAPPER_EXTENSION = xctest;
};
name = Debug;
};
6003F5C4195388D20070C39A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = C18804E184EECC2EC345535B /* Pods-OffcnLiveSDKiOS_Tests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OffcnLiveSDKiOS_Example.app/OffcnLiveSDKiOS_Example";
WRAPPER_EXTENSION = xctest;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
......@@ -482,6 +626,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "OffcnLiveSDKiOS_Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6003F5C3195388D20070C39A /* Debug */,
6003F5C4195388D20070C39A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 6003F582195388D10070C39A /* Project object */;
......
......@@ -2,6 +2,11 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
......
......@@ -46,7 +46,7 @@
[super viewDidLoad];
self.nameTextField.text = @"杜拉拉";
self.koulingTextField.text = @"nv7jjqr1wsy";
self.koulingTextField.text = @"q6qbmnox3cy";
self.uuidTextField.text = [NSString stringWithFormat:@"%d",arc4random_uniform(1000000)];
self.nameTextField.delegate = self;
......
......@@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'OffcnLiveSDKiOS'
s.version = '2.6.3.8.1'
s.version = '2.6.4.0'
s.summary = 'OffcnLiveSDKiOS.'
s.description = <<-DESC
......@@ -28,9 +28,9 @@ TODO: Add long description of the pod here.
s.public_header_files = 'OffcnLiveSDKiOS/Classes/*.h'
#vendored_frameworks: 第三方framework
s.vendored_frameworks = ['OffcnLiveSDKiOS/Frameworks/ZGIJKMediaFramework.framework','OffcnLiveSDKiOS/Frameworks/WebRTC.framework']
s.vendored_frameworks = ['OffcnLiveSDKiOS/Frameworks/ZGIJKMediaFramework.framework','OffcnLiveSDKiOS/Frameworks/OffcnWhiteBoard.framework','OffcnLiveSDKiOS/Frameworks/WebRTC.framework']
#frameworks: 该pod依赖的系统framework
s.frameworks = 'CFNetwork', 'CoreFoundation', 'CoreData', 'Foundation', 'AudioToolbox', 'AVFoundation', 'CoreGraphics', 'CoreMedia', 'CoreVideo', 'MediaPlayer', 'MobileCoreServices', 'OpenGLES', 'QuartzCore', 'UIKit', 'VideoToolbox', 'SystemConfiguration', 'CoreTelephony'
s.frameworks = 'CFNetwork', 'CoreFoundation', 'CoreData', 'Foundation', 'AudioToolbox', 'AVFoundation', 'CoreGraphics', 'CoreMedia', 'CoreVideo', 'MediaPlayer', 'MobileCoreServices', 'OpenGLES', 'QuartzCore', 'UIKit', 'VideoToolbox', 'SystemConfiguration', 'CoreTelephony', 'CoreText'
s.vendored_libraries = ['OffcnLiveSDKiOS/Libraries/libOffcnLiveSDK.a']
......
......@@ -29,8 +29,54 @@ typedef NS_ENUM(NSInteger, OffcnReachabilityStatus) {
OffcnRealStatusViaWiFi = 2
};
@interface OffcnDownloadWhiteboardResourcesModel : NSObject
@property (nonatomic, copy) NSString *Idx;
@property (nonatomic, copy) NSString *Tm;
@property (nonatomic, copy) NSString *Url;
@property (nonatomic, copy) NSString *Typ;
@property (nonatomic, assign) BOOL isWb;
@end
@interface OffcnDownloadManagerModel : NSObject
//房间授课模式:0:房间模式,1:白板模式
@property (nonatomic, assign) NSInteger teaching_model;
//白板字体下载地址
@property (nonatomic, copy) NSString *board_font;
//白板字体下载后本地地址
@property (nonatomic, copy) NSString *board_font_local;
//白板wb文件下载地址
@property (nonatomic, copy) NSString *white_board_play_url;
//白板wb文件下载后本地地址
@property (nonatomic, copy) NSString *white_board_play_url_local;
//wb单个地址(key:帧index;value:未下载就是下载地址,已下载就是本地保存地址)
@property (nonatomic, strong) NSMutableDictionary *white_board_play_url_dic;
//回放播放时需要的每秒对应的wb的index
@property (nonatomic, strong) NSMutableArray *white_board_play_url_indexArr;
//白板ppt下载地址
@property (nonatomic, copy) NSString *white_board_resource_url;
//白板ppt下载后本地地址
@property (nonatomic, copy) NSString *white_board_resource_url_local;
//ppt单页地址(key:帧index;value:未下载就是下载地址,已下载就是本地保存地址)
@property (nonatomic, strong) NSMutableDictionary *white_board_resource_url_dic;
//回放播放时需要的每秒对应的ppt的index
@property (nonatomic, strong) NSMutableArray *white_board_resource_url_indexArr;
//已下载数量
@property (nonatomic, assign) BOOL isDownloadComplete_wb;
@property (nonatomic, assign) BOOL isDownloadComplete_ppt;
//对应下载的标识
@property (nonatomic, assign) int64_t param2;
@property (nonatomic, assign) BOOL isHasParam2;
//沙盒所有视频所在路径
@property (nonatomic, copy) NSString *documentPath;
//沙盒每个下载视频路径
......@@ -191,4 +237,17 @@ typedef void(^downloadM3u8CallBack)(BOOL isSuccess, NSError *error);
//下载m3u8文件
- (void)downloadM3u8WithModel:(OffcnDownloadManagerModel *)model;
/**
回放下载白板wb和ppt文件
@param model model
*/
- (void)downloadWhiteboardResourcesWithModel:(OffcnDownloadManagerModel *)model finished:(void(^)(BOOL success))finished;
//下载白板字体
- (void)downloadWhiteboardFontWithModel:(OffcnDownloadManagerModel *)model finished:(void(^)(OffcnDownloadManagerModel *model))finished;
//下载单个文件
- (void)downloadResource_oneUrlWithModel:(OffcnDownloadManagerModel *)model finished:(void(^)(BOOL success,NSString *path_local,OffcnDownloadManagerModel *callModel))finished;
@end
......@@ -9,7 +9,7 @@
#import <UIKit/UIKit.h>
#import "OffcnShareWindow.h"
static const NSString *OffcnLiveSDKVersion = @"2.6.3.8";
static const NSString *OffcnLiveSDKVersion = @"2.6.4.0";
//事件通知
#define kOffcnEventNotification @"kOffcnEventNotification"
......@@ -91,7 +91,7 @@ typedef void(^OffcnSDKEventCallBack)(OffcnSDKEvent event);
@property (nonatomic, assign) CGRect shareWindowFrame;
@property (nonatomic, strong) UIWindow *KKeyWindow;//获取自定义window
@property (nonatomic, strong) UIWindow *oldKKeyWindow;//三方的window
@property (nonatomic, strong) UIViewController *shareVC;
@property (nonatomic, weak) UIViewController *shareVC;
//是否支持全屏
......
//
// OffcnWhiteBoard.h
// OffcnWhiteBoard
//
// Created by offcnPlayer on 2021/2/26.
//
#import <Foundation/Foundation.h>
#import <OffcnWhiteBoard/WhiteboardGLView.h>
#import <OffcnWhiteBoard/WhiteboardType.h>
//! Project version number for OffcnWhiteBoard.
FOUNDATION_EXPORT double OffcnWhiteBoardVersionNumber;
//! Project version string for OffcnWhiteBoard.
FOUNDATION_EXPORT const unsigned char OffcnWhiteBoardVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <OffcnWhiteBoard/PublicHeader.h>
/*
offcn Whiteboard
*/
#import <UIKit/UIKit.h>
#import "WhiteboardType.h"
@protocol WhiteboardEventDelegate <NSObject>
-(void)whiteboardEentCallback:(WhiteboardEventType) eventType param1:(int64_t)param1 param2:(int64_t) param2 data:(NSData*)data;
-(void)whiteboardLostIndexCallback:(int)seq handle:(int64_t)handle;
-(void)whiteboardLostPageCallback:(NSString*)pageID handle:(int64_t)handle;
@end
typedef struct WBPoint{
int x;
int y;
}WBPoint;
@interface WhiteboardGLView : UIView
- (id) initWithFrame:(CGRect)frame playMode:(WhiteboardPlayerMode)playMode delegate:(id<WhiteboardEventDelegate>)delegate;
- (void)initWhiteboard:(id<WhiteboardEventDelegate>)delegate;
- (void)destroyWhiteboard;
- (BOOL)enableWhiteboard:(NSString*)imagePath;
- (BOOL)setEntityType:(WhiteboardEntityType)type;
-(WhiteboardPlayerMode)getCurrentPlayMode;
- (BOOL)whiteboardOpen:(NSData*)info;
- (BOOL)whiteboardLoad:(NSData*)pkt;
-(BOOL)closePrePage:(int64_t)handle;
- (BOOL)setMotionType:(WhiteboardMotionType)type;
//- (BOOL)resize:(int)width height:(int)height;
//start
-(BOOL)motionStart:(CGPoint)point;
-(BOOL)motionMove:(CGPoint)point;
-(BOOL)motionStop:(CGPoint)point;
-(BOOL)setEntityColor:(int)color;
-(BOOL)setEntityLineThickness:(float)thickness;
-(BOOL)setEntityFillType:(WhiteboardPaintStyle)type;
-(BOOL)setText:(int64_t)handle text:(NSString*)text;
-(BOOL)setFont:(NSString*)fontPath;
-(BOOL)createImage:(NSString*)localPath url:(NSString*)url;
-(BOOL)insertImage:(int64_t)handle path:(NSString*)path;
-(BOOL)createCanvas:(NSString*)imagePath;
-(BOOL)headCanvas;
-(BOOL)tailCanvas;
-(BOOL)nextCanvas;
-(BOOL)prevCanvas;
-(BOOL)deleteCanvas;
-(BOOL)clearCanvas;
-(BOOL)redraw;
-(void)resize;
-(BOOL)clearWhiteboardData;
-(BOOL)setTextAction:(int64_t)handle action:(int)action;
-(BOOL)setTextCursor:(int64_t)handle cursorType:(int)cursorType;
-(BOOL)setFontColor:(int64_t)handle fontColor:(int)fontColor;
-(BOOL)setFontSize:(int64_t)handle fontSize:(float)fontSize;
-(BOOL)setFontStyle:(int64_t)handle fontStyle:(int)fontStyle;
-(NSString*)getImageUrl:(int64_t)handle;
-(BOOL)setViewScale:(float)scale isOptimize:(BOOL)isOptimize;
-(float)getViewScale;
-(BOOL)setViewScaleCenterPoint:(WBPoint)point;
-(WBPoint)getViewScrollPoint;
-(BOOL)setViewScrollPoint:(WBPoint)point isOptimize:(BOOL)isOptimize;
-(WBPoint)getViewScrollRange;
-(BOOL)pushWhiteboardDataFromHttp:(NSData*)data;
-(BOOL)pushWhiteboardDataFromPlayer:(NSData*)data;
-(BOOL)pushWhiteboardDataFromFile:(NSString*)filePath operationSeq:(int)operationSeq;
-(BOOL)pushWhiteboardDataFromFileByIndex:(NSString*)filePath operationSeq:(int)operationSeq;
-(BOOL)pushWhiteboardDataFromFileWithHandle:(NSString*)filePath operationSeq:(int)operationSeq handle:(int64_t)handle;
@property(nonatomic) CGFloat scaleFactor;
@property(weak,nonatomic) id<WhiteboardEventDelegate> eventDelegate;
@end
//
// WhiteboardType.h
// OffcnWhiteboard
//
// Created by offcnPlayer on 2021/3/11.
//
#ifndef WhiteboardType_h
#define WhiteboardType_h
typedef enum WhiteboardEntityType
{
WhiteboardEntityLine = 0,
WhiteboardEntityRect,
WhiteboardEntityOval,
WhiteboardEntityPath,
WhiteboardEntityText,
WhiteboardEntityImage,
WWhiteboardEntityCount
}WhiteboardEntityType;
typedef enum WhiteboardMotionType
{
WhiteboardNewEntity = 0,
WhiteboardDelEntity,
WhiteboardEditEntity,
}WhiteboardMotionType;
typedef enum WhiteboardEventType
{
WhiteboardEventBag,
WhiteboardEventIdr,
WhiteboardEventOpen,
WhiteboardEventClose,
WhiteboardEventClear,
WhiteboardEntityBag,
WhiteboardEntityAdd,
WhiteboardEntityDel,
WhiteboardEntityFront,
WhiteboardEntityBack,
WhiteboardEntityEdt,
WhiteboardEntityMove,
WhiteboardTextEdt,
WhiteboardEntityEnd,
WhiteboardEventCreate,
WhiteboardEventCatch,
WhiteboardEntitySel,
WhiteboardEntityUnSel,
WhiteboardTextInputStart,
WhiteboardTextInputStop,
WhiteboardImageLoad,
WhiteboardFontLoad,
WhiteboardHTMLLoad,
WhiteboardRedraw,
WhiteboardPacketOut,
WhiteboardEventEnd,
WhiteboardUnknownEvent
}WhiteboardEventType;
typedef enum WhiteboardPaintStyle
{
WhiteboardPaintStyleFill=0x00,
WhiteboardPaintStyleStroke,
WhiteboardPaintStyleFillStroke
}WhiteboardPaintStyle;
typedef enum WhiteboardPlayerMode
{
WhiteboardPlayerLiving=0x00,
WhiteboardPlayerVOD
}WhiteboardPlayerMode;
#endif /* WhiteboardType_h */
// Copyright (c) 2018 Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
framework module OffcnWhiteBoard {
umbrella header "OffcnWhiteBoard.h"
export *
module * { export * }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>.DS_Store</key>
<data>
VvNG2xxRYPZZ7gPUBpLmOei0PEQ=
</data>
<key>Headers/OffcnWhiteBoard.h</key>
<data>
eoUOERJgC/EboBgwqGwPSE7IySQ=
</data>
<key>Headers/WhiteboardGLView.h</key>
<data>
P6L/7UnoqFOY/xCTo4EBmMhKXmI=
</data>
<key>Headers/WhiteboardType.h</key>
<data>
K8qgz8pdWWPbtYuSpBrrkCV4MKQ=
</data>
<key>Info.plist</key>
<data>
PfnMczkXfrSIUW+lExWFSC3zA94=
</data>
<key>LICENSE</key>
<data>
tINWhQnPa5eml8zvzV2d8pzfTx8=
</data>
<key>Modules/module.modulemap</key>
<data>
il8gSRETznRJV25lh83Q25QHuCg=
</data>
<key>whiteboard.cbp</key>
<data>
XidwOASmWbztb7iSTDjdCnP2sCI=
</data>
<key>whiteboard.cscope_file_list</key>
<data>
PoNTTRRh4DxeFotHam36H8zXW6c=
</data>
<key>whiteboard.pri</key>
<data>
LK2fV3ckQrKhRmvM06Tqha/fhIg=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/OffcnWhiteBoard.h</key>
<dict>
<key>hash</key>
<data>
eoUOERJgC/EboBgwqGwPSE7IySQ=
</data>
<key>hash2</key>
<data>
1c6ZLrhx2tyugDOvzDdR1wL4InqgI69zLR6ffko/nZQ=
</data>
</dict>
<key>Headers/WhiteboardGLView.h</key>
<dict>
<key>hash</key>
<data>
P6L/7UnoqFOY/xCTo4EBmMhKXmI=
</data>
<key>hash2</key>
<data>
afr6hu7hW6xFG0KlzuuRpBpUNa7HzNknPe8fGh4KC3A=
</data>
</dict>
<key>Headers/WhiteboardType.h</key>
<dict>
<key>hash</key>
<data>
K8qgz8pdWWPbtYuSpBrrkCV4MKQ=
</data>
<key>hash2</key>
<data>
OWbOEOMqaT8uoxDbTywCJjv4xe9plm+bcflRUrIIccU=
</data>
</dict>
<key>LICENSE</key>
<dict>
<key>hash</key>
<data>
tINWhQnPa5eml8zvzV2d8pzfTx8=
</data>
<key>hash2</key>
<data>
5Zu1xca6QmqaxLqf5metFMUWaxKqJb6K8dEisU++LjY=
</data>
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
<data>
il8gSRETznRJV25lh83Q25QHuCg=
</data>
<key>hash2</key>
<data>
xMQWtGbxqUiZG8TFkJLi+LtOSYRx6yM/mUE3q4gqxyI=
</data>
</dict>
<key>whiteboard.cbp</key>
<dict>
<key>hash</key>
<data>
XidwOASmWbztb7iSTDjdCnP2sCI=
</data>
<key>hash2</key>
<data>
XCMkrAPfxssvgXRgvautZsSM6WO8Rh46SlJSVTvaxTw=
</data>
</dict>
<key>whiteboard.cscope_file_list</key>
<dict>
<key>hash</key>
<data>
PoNTTRRh4DxeFotHam36H8zXW6c=
</data>
<key>hash2</key>
<data>
7h6ikmEn3y+kFlrHscLU7s4DDOHIj3fLOx/nLt2Sf1c=
</data>
</dict>
<key>whiteboard.pri</key>
<dict>
<key>hash</key>
<data>
LK2fV3ckQrKhRmvM06Tqha/fhIg=
</data>
<key>hash2</key>
<data>
DtydknqR8ZhVKIJJJdr/v8dkF1Zl/EUwSQgyppAvEHk=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="whiteboard" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="../bin/whiteboard" imp_lib="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).a" def_file="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).def" prefix_auto="1" extension_auto="1" />
<Option object_output="../obj/Debug/whiteboard/" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
<Option createStaticLib="1" />
<Compiler>
<Add option="-g" />
<Add directory="whiteboard" />
</Compiler>
</Target>
<Target title="Release">
<Option output="../bin/whiteboard" prefix_auto="1" extension_auto="1" />
<Option object_output="../obj/Release/whiteboard/" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
<Option createStaticLib="1" />
<Compiler>
<Add option="-O2" />
<Add directory="whiteboard" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-std=c++17" />
<Add option="-fPIC" />
<Add option="-fno-exceptions" />
<Add option="-fno-rtti" />
<Add directory="../../third/skia" />
</Compiler>
<Linker>
<Add option="-ldl" />
<Add option="-lpthread" />
<Add option="-lfontconfig" />
<Add option="-lfreetype" />
<Add option="-luuid" />
<Add option="-lskia" />
<Add library="GL" />
<Add directory="../../third/skia/out/default" />
</Linker>
<Unit filename="../inc/core.h" />
<Unit filename="../inc/whiteboard.h" />
<Unit filename="canvas.cpp" />
<Unit filename="canvas.h" />
<Unit filename="entity.cpp" />
<Unit filename="entity.h" />
<Unit filename="image.cpp" />
<Unit filename="image.h" />
<Unit filename="line.cpp" />
<Unit filename="line.h" />
<Unit filename="main_api.cpp" />
<Unit filename="ops.cpp" />
<Unit filename="ops.h" />
<Unit filename="oval.cpp" />
<Unit filename="oval.h" />
<Unit filename="path.cpp" />
<Unit filename="path.h" />
<Unit filename="rect.cpp" />
<Unit filename="rect.h" />
<Unit filename="richeditor.cpp" />
<Unit filename="richeditor.h" />
<Unit filename="sk_canvas.cpp" />
<Unit filename="sk_canvas.h" />
<Unit filename="stdafx.h" />
<Unit filename="text.cpp" />
<Unit filename="text.h" />
<Unit filename="wb_engine.cpp" />
<Unit filename="wb_engine.h" />
<Extensions />
</Project>
</CodeBlocks_project_file>
"/root/Documents/git/smartboard/whiteboard/canvas.h"
"/root/Documents/git/smartboard/whiteboard/wb_engine.h"
"/root/Documents/git/smartboard/whiteboard/wb_engine.cpp"
"/root/Documents/git/smartboard/whiteboard/canvas.cpp"
"/root/Documents/git/smartboard/whiteboard/main.cpp"
"/root/Documents/git/smartboard/whiteboard/stdafx.h"
"/root/Documents/git/smartboard/whiteboard/sk_canvas.h"
"/root/Documents/git/smartboard/inc/whiteboard.h"
"/root/Documents/git/smartboard/whiteboard/sk_canvas.cpp"
INCLUDEPATH += $$PWD
CONFIG += c++17
DEFINES += SK_GL SK_SUPPORT_GPU QT_NO_FOREACH
HEADERS += \
$$PWD/canvas.h \
$$PWD/cursor.h \
$$PWD/entity.h \
$$PWD/image.h \
$$PWD/line.h \
$$PWD/oval.h \
$$PWD/path.h \
$$PWD/rect.h \
$$PWD/richeditor.h \
$$PWD/sk_canvas.h \
$$PWD/stdafx.h \
$$PWD/text.h \
$$PWD/wb_engine.h
SOURCES += \
$$PWD/canvas.cpp \
$$PWD/cursor.cpp \
$$PWD/entity.cpp \
$$PWD/image.cpp \
$$PWD/line.cpp \
$$PWD/main_api.cpp \
$$PWD/oval.cpp \
$$PWD/path.cpp \
$$PWD/rect.cpp \
$$PWD/richeditor.cpp \
$$PWD/sk_canvas.cpp \
$$PWD/text.cpp \
$$PWD/wb_engine.cpp
INCLUDEPATH += \
E:\\Workspace\\skia_chrome_m88 \
E:\\Workspace\\skia_chrome_m88\\include \
E:\\Workspace\\skia_chrome_m88\\include\\core \
E:\\Workspace\\skia_chrome_m88\\src\\core \
E:\\Workspace\\skia_chrome_m88\\src\\utils \
E:\\Workspace\\skia_chrome_m88\\samplecode \
E:\\Workspace\\skia_chrome_m88\\tools\\sk_app
CONFIG(debug, debug|release) {
LIBS += -LE:\\Workspace\\skia_chrome_m88\\out\\Static_Debug_x86 -lskia -lUser32 -lOpengl32 -ld3dcompiler -lD3D12
} else {
LIBS += -LE:\\Workspace\\skia_chrome_m88\\out\\Static -lskia -lUser32 -lOpengl32 -ld3dcompiler -lD3D12
}
......@@ -126,6 +126,8 @@ typedef enum IJKLogLevel {
@property (nonatomic, retain) id<IJKMediaUrlOpenDelegate> liveOpenDelegate;
@property (nonatomic, retain) id<IJKMediaNativeInvokeDelegate> nativeInvokeDelegate;
@property (nonatomic, retain) id<OFFCNWhiteboardDelegate> whiteboardDataDelegate;
- (void)didShutdown;
......
......@@ -58,6 +58,11 @@ typedef NS_ENUM(NSInteger, IJKMPMoviePullState) {
IJKMPMoviePullStateSuccessed
};
typedef NS_ENUM(NSInteger, IJKMPMoviePlayerAndWhiteboardStyle) {
IJKMPMovieWhiteboardStyle,
IJKMPMoviePlayerStyle
};
typedef NS_ENUM(NSInteger, IJKMPMovieWarningType) {
IJKMPMovieBufferEmptyWarning,
IJKMPMovieAVLostSynWarning,
......@@ -214,6 +219,12 @@ IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidBufferEnoughNotification;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidPullStreamStateNotification;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidPullStreamStateUserInfoKey;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidPlayerAndWhiteboardCommandNotification;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidPlayerAndWhiteboardCommandUserInfoKey;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerWhiteboardIndexNotification;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerWhiteboardIndexUserInfoKey;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerDidKeyFrameNotification;
IJK_EXTERN NSString *const ZGIJKMPMoviePlayerWarningNotification;
......@@ -274,6 +285,13 @@ typedef NS_ENUM(NSInteger, IJKMediaEvent) {
@end
@protocol OFFCNWhiteboardDelegate <NSObject>
- (void)whiteboardDataCallback:(NSData*)data;
- (void)whiteboardCommandInfo:(int)commandType param:(int)param;
@end
@protocol IJKMediaNativeInvokeDelegate <NSObject>
- (int)invoke:(IJKMediaEvent)event attributes:(NSDictionary *)attributes;
......
......@@ -34,6 +34,13 @@ typedef NS_ENUM(NSInteger,PlayerState)
PLAYER_STATE_SEEK_COMPLETED
};
typedef NS_ENUM(NSInteger,ZGPlayerThirdPartyCommand) {
COMMAND_WHITEBOARD_MAIN_SHOW,
COMMAND_PLAYER_MAIN_SHOW,
};
@protocol PlayerStateDelegate <NSObject>
@optional
......@@ -41,6 +48,9 @@ typedef NS_ENUM(NSInteger,PlayerState)
-(void) onPlayerStateChanged:(PlayerState) playerState;
-(void) onCurrentPosition:(NSTimeInterval)curPos totalDuration:(NSTimeInterval)duration;
-(void) onWhiteboardData:(NSData*)data;
-(void) onWhiteboardOperationIndex:(int)operationIndex;
-(void) onCommand:(ZGPlayerThirdPartyCommand)command param:(int)param;
@end
......@@ -60,6 +70,9 @@ typedef enum ZGPlayerType {
TYPE_MPMOIVE_PLAYER = 3,
} ZGPlayerType;
@property(nonatomic, strong) NSURL* url; // 拉流地址
@property(nonatomic,weak) id<PlayerStateDelegate> delegate;
......
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