Commit cf6e1fb0 authored by Hanruisong's avatar Hanruisong
Browse files

feat: 更新到 4.10.2

1.支持iOS14,iPhone使用画中画功能。
2.优化demo中的方法。
parent a3d99479
......@@ -403,15 +403,16 @@
B88562A41DED1AC8008D1763 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B88562A31DED1AC8008D1763 /* SystemConfiguration.framework */; };
DD25727D24F79DED00D9BB55 /* icon_exercises_close@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD25727B24F79DED00D9BB55 /* icon_exercises_close@3x.png */; };
DD25727E24F79DED00D9BB55 /* icon_exercises_close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD25727C24F79DED00D9BB55 /* icon_exercises_close@2x.png */; };
DD27A31C2554FF29002BABA8 /* DWResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DD27A31A2554FF29002BABA8 /* DWResource.bundle */; };
DD27A31D2554FF29002BABA8 /* vrlibraw.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DD27A31B2554FF29002BABA8 /* vrlibraw.bundle */; };
DD27A31E2554FF31002BABA8 /* CCVodSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD27A3162554FF07002BABA8 /* CCVodSDK.framework */; };
DD27A31F2554FF31002BABA8 /* CCVodSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DD27A3162554FF07002BABA8 /* CCVodSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
DD27A3202554FF34002BABA8 /* HDBaseUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD27A3172554FF07002BABA8 /* HDBaseUtils.framework */; };
DD27A3212554FF34002BABA8 /* HDBaseUtils.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DD27A3172554FF07002BABA8 /* HDBaseUtils.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
DD54280A250B55AB0097614C /* icon_ad_mute_select@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD542806250B55AA0097614C /* icon_ad_mute_select@2x.png */; };
DD54280B250B55AB0097614C /* icon_ad_mute@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD542807250B55AB0097614C /* icon_ad_mute@3x.png */; };
DD54280C250B55AB0097614C /* icon_ad_mute@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD542808250B55AB0097614C /* icon_ad_mute@2x.png */; };
DD54280D250B55AB0097614C /* icon_ad_mute_select@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DD542809250B55AB0097614C /* icon_ad_mute_select@3x.png */; };
DDC8248E2548165F0032C6B0 /* CCVodSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDC8248C2548165E0032C6B0 /* CCVodSDK.framework */; };
DDC82493254816CD0032C6B0 /* DWResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DDC82491254816CD0032C6B0 /* DWResource.bundle */; };
DDC82494254816CD0032C6B0 /* vrlibraw.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DDC82492254816CD0032C6B0 /* vrlibraw.bundle */; };
DDC82495254817800032C6B0 /* HDBaseUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDC8248D2548165E0032C6B0 /* HDBaseUtils.framework */; };
DDC82496254817800032C6B0 /* HDBaseUtils.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DDC8248D2548165E0032C6B0 /* HDBaseUtils.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
......@@ -421,7 +422,8 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
DDC82496254817800032C6B0 /* HDBaseUtils.framework in Embed Frameworks */,
DD27A31F2554FF31002BABA8 /* CCVodSDK.framework in Embed Frameworks */,
DD27A3212554FF34002BABA8 /* HDBaseUtils.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
......@@ -987,14 +989,14 @@
B88562A31DED1AC8008D1763 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
DD25727B24F79DED00D9BB55 /* icon_exercises_close@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_exercises_close@3x.png"; sourceTree = "<group>"; };
DD25727C24F79DED00D9BB55 /* icon_exercises_close@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_exercises_close@2x.png"; sourceTree = "<group>"; };
DD27A3162554FF07002BABA8 /* CCVodSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CCVodSDK.framework; sourceTree = "<group>"; };
DD27A3172554FF07002BABA8 /* HDBaseUtils.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = HDBaseUtils.framework; sourceTree = "<group>"; };
DD27A31A2554FF29002BABA8 /* DWResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = DWResource.bundle; path = CCVodSDK.framework/DWResource.bundle; sourceTree = "<group>"; };
DD27A31B2554FF29002BABA8 /* vrlibraw.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = vrlibraw.bundle; path = CCVodSDK.framework/vrlibraw.bundle; sourceTree = "<group>"; };
DD542806250B55AA0097614C /* icon_ad_mute_select@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_ad_mute_select@2x.png"; sourceTree = "<group>"; };
DD542807250B55AB0097614C /* icon_ad_mute@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_ad_mute@3x.png"; sourceTree = "<group>"; };
DD542808250B55AB0097614C /* icon_ad_mute@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_ad_mute@2x.png"; sourceTree = "<group>"; };
DD542809250B55AB0097614C /* icon_ad_mute_select@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_ad_mute_select@3x.png"; sourceTree = "<group>"; };
DDC8248C2548165E0032C6B0 /* CCVodSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CCVodSDK.framework; sourceTree = "<group>"; };
DDC8248D2548165E0032C6B0 /* HDBaseUtils.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = HDBaseUtils.framework; sourceTree = "<group>"; };
DDC82491254816CD0032C6B0 /* DWResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = DWResource.bundle; path = CCVodSDK.framework/DWResource.bundle; sourceTree = "<group>"; };
DDC82492254816CD0032C6B0 /* vrlibraw.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = vrlibraw.bundle; path = CCVodSDK.framework/vrlibraw.bundle; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -1002,15 +1004,15 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DDC82495254817800032C6B0 /* HDBaseUtils.framework in Frameworks */,
DD27A3202554FF34002BABA8 /* HDBaseUtils.framework in Frameworks */,
048AD12822CDCE83008C8911 /* libxml2.tbd in Frameworks */,
043441FF225EF2BB003F7EC1 /* CoreServices.framework in Frameworks */,
352CBDD91FD6980C00D24715 /* AudioToolbox.framework in Frameworks */,
352CBDD71FD697E800D24715 /* MediaPlayer.framework in Frameworks */,
B88562A41DED1AC8008D1763 /* SystemConfiguration.framework in Frameworks */,
B57CC7C018E2E581001A1696 /* AVFoundation.framework in Frameworks */,
DD27A31E2554FF31002BABA8 /* CCVodSDK.framework in Frameworks */,
B57CC7BE18E2E575001A1696 /* CoreLocation.framework in Frameworks */,
DDC8248E2548165F0032C6B0 /* CCVodSDK.framework in Frameworks */,
B57CC7BC18E2E569001A1696 /* CoreMedia.framework in Frameworks */,
B547EC4C18E033FB00BC980C /* CoreGraphics.framework in Frameworks */,
B547EC4E18E033FB00BC980C /* UIKit.framework in Frameworks */,
......@@ -1843,7 +1845,7 @@
isa = PBXGroup;
children = (
044C66A122D46DAE0032396F /* Demo.entitlements */,
DDC8248B2548165E0032C6B0 /* SDK */,
DD27A3152554FF07002BABA8 /* SDK */,
0434420D225F0EDD003F7EC1 /* Classes */,
B547EC5818E033FB00BC980C /* DWAppDelegate.h */,
B547EC5918E033FB00BC980C /* DWAppDelegate.m */,
......@@ -1870,13 +1872,13 @@
name = "Supporting Files";
sourceTree = "<group>";
};
DDC8248B2548165E0032C6B0 /* SDK */ = {
DD27A3152554FF07002BABA8 /* SDK */ = {
isa = PBXGroup;
children = (
DDC82491254816CD0032C6B0 /* DWResource.bundle */,
DDC82492254816CD0032C6B0 /* vrlibraw.bundle */,
DDC8248C2548165E0032C6B0 /* CCVodSDK.framework */,
DDC8248D2548165E0032C6B0 /* HDBaseUtils.framework */,
DD27A31A2554FF29002BABA8 /* DWResource.bundle */,
DD27A31B2554FF29002BABA8 /* vrlibraw.bundle */,
DD27A3162554FF07002BABA8 /* CCVodSDK.framework */,
DD27A3172554FF07002BABA8 /* HDBaseUtils.framework */,
);
path = SDK;
sourceTree = "<group>";
......@@ -1892,7 +1894,7 @@
B547EC4318E033FB00BC980C /* Frameworks */,
B547EC4418E033FB00BC980C /* Resources */,
046FF38A2468F48100AB4A98 /* Embed Frameworks */,
DDC82490254816880032C6B0 /* ShellScript */,
DD27A3222555174F002BABA8 /* ShellScript */,
);
buildRules = (
);
......@@ -2052,7 +2054,7 @@
04AB4A3722B1F22A00BB9BF9 /* icon_exercises_error@2x.png in Resources */,
04D60ED822719B9C0009C572 /* icon_play_vr_inselect_select@2x.png in Resources */,
043D4E6B22D5C91D00FCDCBE /* icon_sound_add@2x.png in Resources */,
DDC82493254816CD0032C6B0 /* DWResource.bundle in Resources */,
DD27A31C2554FF29002BABA8 /* DWResource.bundle in Resources */,
04346AC8249720C6005A3396 /* icon_screenshot@2x.png in Resources */,
04B7A661226B0E5E00951983 /* icon_question_multi_select@3x.png in Resources */,
04AB4A3F22B1F22A00BB9BF9 /* icon_exercises_answer_d_select@2x.png in Resources */,
......@@ -2150,7 +2152,7 @@
04346AC0249720C6005A3396 /* brightness.png in Resources */,
04B7A65F226B0E5E00951983 /* icon_question_single_select@2x.png in Resources */,
0491DD1F24B5604300DF40C7 /* icon_barrage_color_select@3x.png in Resources */,
DDC82494254816CD0032C6B0 /* vrlibraw.bundle in Resources */,
DD27A31D2554FF29002BABA8 /* vrlibraw.bundle in Resources */,
04BAA93D22D4787B000495B4 /* icon_screen_list@2x.png in Resources */,
04AB4A2622B1F22A00BB9BF9 /* icon_exercises_answer_g_normal@2x.png in Resources */,
04B7A65C226B0E5E00951983 /* icon_question_multi_select@2x.png in Resources */,
......@@ -2200,7 +2202,7 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
DDC82490254816880032C6B0 /* ShellScript */ = {
DD27A3222555174F002BABA8 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
......@@ -2478,7 +2480,7 @@
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1.0;
DEVELOPMENT_TEAM = 39TBB43S2R;
ENABLE_BITCODE = YES;
ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......@@ -2526,7 +2528,7 @@
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1.0;
DEVELOPMENT_TEAM = 39TBB43S2R;
ENABLE_BITCODE = YES;
ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
......
<?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>BuildLocationStyle</key>
<string>UseAppPreferences</string>
<key>CustomBuildLocationType</key>
<string>RelativeToDerivedData</string>
<key>DerivedDataLocationStyle</key>
<string>Default</string>
<key>IssueFilterStyle</key>
<string>ShowActiveSchemeOnly</string>
<key>LiveSourceIssuesEnabled</key>
<true/>
<key>ShowSharedSchemesAutomaticallyEnabled</key>
<true/>
</dict>
</plist>
......@@ -94,9 +94,8 @@
-(void)reloadLoaclData
{
//请自行替换数据
NSArray * videos = @[];
for (int i = 0; i < videos.count; i++) {
DWVodModel * vodModel = [[DWVodModel alloc]init];
vodModel.videoId = [videos objectAtIndex:i];
......
......@@ -378,7 +378,7 @@ static NSInteger setSectionListTableHeight = 60;
// IS_PAD
NSArray * titles = nil;
NSArray * images = nil;
if (IS_PAD) {
if (SUPPORTEDPIP) {
titles = @[@"下载",@"投屏",@"视频播放",@"网络检测",@"小窗播放"];
images = @[@"icon_setting_dwonload.png",@"icon_screen_horizontal.png",@"icon_setting_video.png",@"icon_setting_network.png",@"icon_windows_full.png"];
}else{
......
......@@ -541,7 +541,7 @@ static CGFloat barrageBgHeight = 40;
-(void)updateConstraintsAndHidden
{
NSInteger buttonCount = 1;
if (IS_PAD) {
if (SUPPORTEDPIP) {
buttonCount++;
}
......@@ -1781,7 +1781,7 @@ static CGFloat barrageBgHeight = 40;
如果要启用画中画功能,请务必设置DWPlayerView对象下列方法值为YES,允许播放器进行后台播放。否则程序进入后台时,可能无法播放视频。
- (void)setPlayInBackground:(BOOL)play;
*/
if (![AVPictureInPictureController isPictureInPictureSupported]) {
[@"设备不支持画中画功能" showAlert];
return;
......@@ -3013,7 +3013,7 @@ static CGFloat barrageBgHeight = 40;
//触发震动,提示文字
-(void)showImpactView:(CGFloat)time
{
if (IS_PAD) {
if (SUPPORTEDPIP) {
return;
}
......@@ -3428,7 +3428,7 @@ static CGFloat barrageBgHeight = 40;
//AVPlayerLayer对象变动时回调
- (void)videoPlayer:(DWPlayerView *)playerView ChangePlayerLayer:(AVPlayerLayer *)playerLayer
{
if (IS_PAD) {
if (SUPPORTEDPIP) {
self.pipVC = [[AVPictureInPictureController alloc]initWithPlayerLayer:self.playerView.playerLayer];
self.pipVC.delegate = self;
}
......@@ -3483,7 +3483,7 @@ static CGFloat barrageBgHeight = 40;
}];
NSInteger buttonCount = 1;
if (IS_PAD) {
if (SUPPORTEDPIP) {
buttonCount++;
[self.topFuncBgView addSubview:self.pipButton];
[_pipButton mas_makeConstraints:^(MASConstraintMaker *make) {
......
......@@ -27,7 +27,7 @@
self.DWAccount_userId = @"391E6E3340A00767";
self.DWAccount_apikey = @"T8WdOUuvFEiOsou1xjDr4U73v12M7iNa";
self.isOpenAd = [[[NSUserDefaults standardUserDefaults] objectForKey:@"isOpenAD"] boolValue];
}
return self;
......
......@@ -18,7 +18,7 @@
#define IsIOS7 ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=7)
#define IS_PAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define SUPPORTEDPIP ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || ([[[UIDevice currentDevice] systemVersion] floatValue] >= 14.0))
#define ScreenWidth [UIScreen mainScreen].bounds.size.width
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
......
......@@ -224,6 +224,10 @@
NSString *cString = [[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
if ([cString length] < 6) {
return nil;
}
if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
......@@ -251,6 +255,10 @@
NSString *cString = [[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
if ([cString length] < 6) {
return nil;
}
if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
......
No preview for this file type
//版本号
#define SDK_VERSION @"4.10.1"
#define SDK_VERSION @"4.10.2"
#import <CCVodSDK/DWGIFManager.h>
#import <CCVodSDK/DWAdInfo.h>
......
......@@ -1837,6 +1837,6 @@ footer.ty-footer {
</style>
</head>
<body class='typora-export' >
<div id='write' class = ''><h1><a name="概述" class="md-header-anchor"></a><span>概述</span></h1><h2><a name="sdk简介" class="md-header-anchor"></a><span>SDK简介</span></h2><p><span>iOS点播SDK是适用于iOS平台的云点播SDK。使用此SDK可以与获得场景视频云服务进行对接,在iOS端使用获得场景视频的点播功能。</span></p><h2><a name="设备及开发环境" class="md-header-anchor"></a><span>设备及开发环境</span></h2><p><span>Xcode 集成开发环境。</span></p><p><span>iOS 运行环境:iOS 9.0 及以上系统,armv7、arm64、x86_64的CPU架构。</span></p><h2><a name="功能特性" class="md-header-anchor"></a><span>功能特性</span></h2><figure><table><thead><tr><th><span>功能</span></th><th style='text-align:left;' ><span>描述</span></th></tr></thead><tbody><tr><td><span>播放功能</span></td><td style='text-align:left;' ><span>支持加密/非加密音视频在线和本地播放</span></td></tr><tr><td><span>广告功能</span></td><td style='text-align:left;' ><span>支持添加视频片头广告、暂停广告、片尾广告</span></td></tr><tr><td><span>播放统计</span></td><td style='text-align:left;' ><span>支持用户实现播放的统计</span></td></tr><tr><td><span>视频打点</span></td><td style='text-align:left;' ><span>支持用户自定义视频打点功能</span></td></tr><tr><td><span>视频问答</span></td><td style='text-align:left;' ><span>支持用户自定义问答功能</span></td></tr><tr><td><span>视频字幕</span></td><td style='text-align:left;' ><span>支持从服务器获取字幕资源并显示</span></td></tr><tr><td><span>授权验证</span></td><td style='text-align:left;' ><span>支持设置视频是否允许预览</span></td></tr><tr><td><span>原片播放</span></td><td style='text-align:left;' ><span>支持视频上传之后,立即播放</span></td></tr><tr><td><span>访客信息收集</span></td><td style='text-align:left;' ><span>支持访客信息收集功能</span></td></tr><tr><td><span>课堂练习</span></td><td style='text-align:left;' ><span>支持课堂练习功能</span></td></tr><tr><td><span>播放器皮肤</span></td><td style='text-align:left;' ><span>支持带皮肤的播放页面</span></td></tr><tr><td><span>视频投屏</span></td><td style='text-align:left;' ><span>支持DLNA投屏</span></td></tr><tr><td><span>防录屏</span></td><td style='text-align:left;' ><span>支持视频防录屏功能</span></td></tr><tr><td><span>动态水印</span></td><td style='text-align:left;' ><span>支持上传视频时,添加动态水印</span></td></tr><tr><td><span>VR视频</span></td><td style='text-align:left;' ><span>支持VR视频播放</span></td></tr><tr><td><span>GIF录制</span></td><td style='text-align:left;' ><span>支持GIF录制功能</span></td></tr><tr><td><span>视频截图</span></td><td style='text-align:left;' ><span>支持加密,非加密视频截图</span></td></tr><tr><td><span>上传功能</span></td><td style='text-align:left;' ><span>支持音视频上传、断点上传,后台上传功能</span></td></tr><tr><td><span>下载功能</span></td><td style='text-align:left;' ><span>支持音视频上传、断点下载、批量下载,后台下载功能</span></td></tr><tr><td><span>画中画功能</span></td><td style='text-align:left;' ><span>支持iPad画中画播放</span></td></tr><tr><td><span>跑马灯功能</span></td><td style='text-align:left;' ><span>支持添加跑马灯效果</span></td></tr><tr><td><span>视频弹幕</span></td><td style='text-align:left;' ><span>支持视频弹幕发送,显示等功能</span></td></tr><tr><td><span>动感视频</span></td><td style='text-align:left;' ><span>支持动感视频功能</span></td></tr></tbody></table></figure><p>&nbsp;</p></div>
<div id='write' class = ''><h1><a name="概述" class="md-header-anchor"></a><span>概述</span></h1><h2><a name="sdk简介" class="md-header-anchor"></a><span>SDK简介</span></h2><p><span>iOS点播SDK是适用于iOS平台的云点播SDK。使用此SDK可以与获得场景视频云服务进行对接,在iOS端使用获得场景视频的点播功能。</span></p><h2><a name="设备及开发环境" class="md-header-anchor"></a><span>设备及开发环境</span></h2><p><span>Xcode 集成开发环境。</span></p><p><span>iOS 运行环境:iOS 9.0 及以上系统,armv7、arm64、x86_64的CPU架构。</span></p><h2><a name="功能特性" class="md-header-anchor"></a><span>功能特性</span></h2><figure><table><thead><tr><th><span>功能</span></th><th style='text-align:left;' ><span>描述</span></th></tr></thead><tbody><tr><td><span>播放功能</span></td><td style='text-align:left;' ><span>支持加密/非加密音视频在线和本地播放</span></td></tr><tr><td><span>广告功能</span></td><td style='text-align:left;' ><span>支持添加视频片头广告、暂停广告、片尾广告</span></td></tr><tr><td><span>播放统计</span></td><td style='text-align:left;' ><span>支持用户实现播放的统计</span></td></tr><tr><td><span>视频打点</span></td><td style='text-align:left;' ><span>支持用户自定义视频打点功能</span></td></tr><tr><td><span>视频问答</span></td><td style='text-align:left;' ><span>支持用户自定义问答功能</span></td></tr><tr><td><span>视频字幕</span></td><td style='text-align:left;' ><span>支持从服务器获取字幕资源并显示</span></td></tr><tr><td><span>授权验证</span></td><td style='text-align:left;' ><span>支持设置视频是否允许预览</span></td></tr><tr><td><span>原片播放</span></td><td style='text-align:left;' ><span>支持视频上传之后,立即播放</span></td></tr><tr><td><span>访客信息收集</span></td><td style='text-align:left;' ><span>支持访客信息收集功能</span></td></tr><tr><td><span>课堂练习</span></td><td style='text-align:left;' ><span>支持课堂练习功能</span></td></tr><tr><td><span>播放器皮肤</span></td><td style='text-align:left;' ><span>支持带皮肤的播放页面</span></td></tr><tr><td><span>视频投屏</span></td><td style='text-align:left;' ><span>支持DLNA投屏</span></td></tr><tr><td><span>防录屏</span></td><td style='text-align:left;' ><span>支持视频防录屏功能</span></td></tr><tr><td><span>动态水印</span></td><td style='text-align:left;' ><span>支持上传视频时,添加动态水印</span></td></tr><tr><td><span>VR视频</span></td><td style='text-align:left;' ><span>支持VR视频播放</span></td></tr><tr><td><span>GIF录制</span></td><td style='text-align:left;' ><span>支持GIF录制功能</span></td></tr><tr><td><span>视频截图</span></td><td style='text-align:left;' ><span>支持加密,非加密视频截图</span></td></tr><tr><td><span>上传功能</span></td><td style='text-align:left;' ><span>支持音视频上传、断点上传,后台上传功能</span></td></tr><tr><td><span>下载功能</span></td><td style='text-align:left;' ><span>支持音视频上传、断点下载、批量下载,后台下载功能</span></td></tr><tr><td><span>画中画功能</span></td><td style='text-align:left;' ><span>支持画中画播放</span></td></tr><tr><td><span>跑马灯功能</span></td><td style='text-align:left;' ><span>支持添加跑马灯效果</span></td></tr><tr><td><span>视频弹幕</span></td><td style='text-align:left;' ><span>支持视频弹幕发送,显示等功能</span></td></tr><tr><td><span>动感视频</span></td><td style='text-align:left;' ><span>支持动感视频功能</span></td></tr></tbody></table></figure><p>&nbsp;</p></div>
</body>
</html>
\ No newline at end of file
......@@ -1911,6 +1911,6 @@ footer.ty-footer {
</head>
<body class='typora-export' >
<div id='write' class = ''><h1><a name="常见问题" class="md-header-anchor"></a><span>常见问题</span></h1><h2><a name="1dwplayinfo数据获取失败的问题" class="md-header-anchor"></a><span>1.DWPlayInfo数据获取失败的问题</span></h2><p><span>当遇到DWPlayInfo回调失败时,首先要排除userId、APIKEY是否有效,其次判断网络是否正常、是否已经连接、videoId是否是userId和APIKEY名下的视频。除此之外还可以通过HTTP通信日志排查问题。</span></p><h2><a name="2关于加密音视频的播放问题" class="md-header-anchor"></a><span>2.关于加密音视频的播放问题</span></h2><p><span>新版本中,对于原旧版本加密服务DWDrmServer的调用封装到了SDK内部,用户无需再对DWDrmServer服务进行操作,SDK会自动识别加密音视频进行播放。</span></p><h2><a name="3对于通过import-dwsdkh无法引入路径下的文件的问题" class="md-header-anchor"></a><span>3.对于通过#import &quot;DWSDK.h&quot;无法引入路径下的文件的问题</span></h2><p><span>找到TARGETS -&gt; Build Setting -&gt; Search Paths。添加</span><code>Header Search Path</code><span>,路径到SDK的文件夹下。若还无法找到,继续添加</span><code>User Header Search Path</code><span>即可。</span></p><h2><a name="4关于控制台频繁出现-nwconnectioncopyconnectedpath日志的问题" class="md-header-anchor"></a><span>4.关于控制台频繁出现&quot;[] nw_connection_copy_connected_path&quot;日志的问题</span></h2><p><span>找到Edit Scheme -&gt; Run -&gt; Arguments -&gt; Enviroment Variables,添加属性</span><code>OS_ACTIVITY_MODE</code><span>,设置为0即可。</span></p><h2><a name="5程序进入前台时下载任务回调可能不执行的问题" class="md-header-anchor"></a><span>5.程序进入前台时,下载任务回调可能不执行的问题</span></h2><p><span>我们发现,在iOS12的系统下,app进入前台时,有极小的概率会发生下载的回调不执行的问题。若想临时解决这个问题,只需要在appDelegate的applicationDidBecomeActive:方法中,将正在下载的任务暂停,然后延迟1秒以后在重新开始下载即可。最终还要等待苹果官方解决此问题。</span></p><h2><a name="6当集成423-sdk时若出现" class="md-header-anchor"></a><span>6.当集成4.2.3 SDK时,若出现 </span></h2><p><span>Undefined symbols for architecture x84_64:</span></p><p><span> &quot;__isPlatformVersionAtLeast&quot;,referenced from;</span></p><p><span> ...</span></p><p><span> ...</span></p><p><span> ...</span></p><p><span>ld:symbol(s) not found for architecture x84_64</span></p><p><span>clane: error: linker command failed with exit code 1 (use -v to see invocation)</span></p><p><span>编译错误时,请升级4.2.4及以上版本SDK或升级最新的Xcode重新编译即可。</span></p><h2><a name="7升级480及以后版本编译报错的问题" class="md-header-anchor"></a><span>7.升级4.8.0及以后版本编译报错的问题</span></h2><p><span>&#39;DWxxx.h&#39; file not found错误分为以下两种情况:</span></p><p><span>1.DWSDK.h文件,原DWSDK.h现更名为CCVodSDK.h,使用#import &lt;CCVodSDK/CCVodSDK.h&gt;方式引入头文件。</span></p><p><span>2.其他SDK文件报错,由于SDK库类型的变化,引入方式修改为#import &lt;CCVodSDK/DWxxx.h&gt;;或删除全部引入异常的头文件,在项目pch文件中,引入#import &lt;CCVodSDK/CCVodSDK.h&gt;即可。</span></p><h2><a name="8集成点播sdk打包上线报错的问题" class="md-header-anchor"></a><span>8.集成点播SDK打包上线报错的问题</span></h2><p><span>关于打包上线过程中,不支持 x86_64 和 i386 等情况。错误描述如下:</span></p><pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang=""><div class="CodeMirror cm-s-inner CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><span><span></span>x</span></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">The following issues occurred while distributing your application.</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text=""></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">App Store Connect Operation Error</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> ERROR ITMS-90097:"Unsupported Architectures. The executable for xxx.framework contains unsupported architectures '[x86_64]."</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> </span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> ...</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> </span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> App Store Connect Operation Error</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> ERROR ITMS-90097:"Unsupported Architectures. The executable for xxx.framework contains unsupported architectures '[x86_64,i386]."</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: transparent; top: 286px;"></div><div class="CodeMirror-gutters" style="display: none; height: 286px;"></div></div></div></pre><p><span>解决方案:Target --&gt; Build Phases --&gt; 点击&quot;+&quot;按钮,选择&quot;New Run Script Phase&quot;,在 Run Script 内添加以下脚本方法,重新编译打包即可。</span></p><pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"># This script loops through the frameworks embedded in the application and &nbsp;</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"># removes unused architectures. &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-invalidchar" title="\u200b" aria-label="\u200b" cm-text="​"></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">do &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">EXTRACTED_ARCHS=() &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">for ARCH in $ARCHS &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">do &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">done &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-invalidchar" title="\u200b" aria-label="\u200b" cm-text="​"></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">echo "Merging extracted architectures: ${ARCHS}" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">rm "${EXTRACTED_ARCHS[@]}" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">echo "Replacing original executable with thinned version" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">rm "$FRAMEWORK_EXECUTABLE_PATH" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">done</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text=""></span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text=""></span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: transparent; top: 780px;"></div><div class="CodeMirror-gutters" style="display: none; height: 780px;"></div></div></div></pre><h2><a name="9关于使用cocoapods更新490及以上sdk编译报错的问题" class="md-header-anchor"></a><span>9.关于使用Cocoapods更新4.9.0及以上SDK编译报错的问题</span></h2><p><span>由于Xcode12的兼容性问题,在使用Cocoapods集成4.9.0及以上版本的SDK时,会导致如下编译错误</span></p><pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang=""><div class="CodeMirror cm-s-inner CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">dyld: Library not loaded: @rpath/HDBaseUtils.framework/HDBaseUtils</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> Referenced from: /private/var/containers/Bundle/Application/83A9ECB5-758F-4B99-90AA-56D4B0D835DC/xxx.app/xxx</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> Reason: image not found</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">dyld: launch, loading dependent libraries</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DYLD_LIBRARY_PATH=/usr/lib/system/introspection</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/GPUTools.framework/libglInterpose.dylib:/usr/lib/libMTLCapture.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Message from debugger: Terminated due to signal 6</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: transparent; top: 286px;"></div><div class="CodeMirror-gutters" style="display: none; height: 286px;"></div></div></div></pre><p><span>解决方案:</span>
<span>第一步:项目 - TARGETS - Build Phases - Link Binary With Libraries - Add Other - Add Files.. 添加Pods/HDBaseUtils/HDBaseUtils/HDBaseUtils.framework。</span></p><p><span>第二步:项目 - TARGETS - General - Frameworks.Libraries,and Embedded Content - 找到HDBaseUtils.framework,将默认Do Not Embed修改为Embed &amp; Sign,即可。</span></p><p><span>更多信息请参考</span><a href='https://doc.bokecc.com'><span> “获得场景视频帮助中心”</span></a><span>,如果在使用SDK过程中遇到其他问题请联系获得场景视频客服进行反馈。</span></p></div>
<span>第一步:项目 - TARGETS - Build Phases - Link Binary With Libraries - Add Other - Add Files.. 添加Pods/HDBaseUtils/HDBaseUtils/HDBaseUtils.framework、Pods/CCVodSDK/Frameworks/CCVodSDK.framework</span></p><p><span>第二步:项目 - TARGETS - General - Frameworks.Libraries,and Embedded Content - 找到HDBaseUtils.framework、CCVodSDK.framework,将默认Do Not Embed修改为Embed &amp; Sign,即可。</span></p><p><span>更多信息请参考</span><a href='https://doc.bokecc.com'><span> “获得场景视频帮助中心”</span></a><span>,如果在使用SDK过程中遇到其他问题请联系获得场景视频客服进行反馈。</span></p></div>
</body>
</html>
\ No newline at end of file
No preview for this file type
//版本号
#define SDK_VERSION @"4.10.1"
#define SDK_VERSION @"4.10.2"
#import <CCVodSDK/DWGIFManager.h>
#import <CCVodSDK/DWAdInfo.h>
......
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