Commit 77e3573fd82789ed883d4ed3647de740df3def15

Authored by 朱林
1 parent 258bb9fe

播放SDK新增静音,旋转,循环播放等方法;v2.1.6

CNLivePlayerSDKTest/CNLivePlayerSDKTest.xcodeproj/project.pbxproj
@@ -25,12 +25,12 @@ @@ -25,12 +25,12 @@
25 816D7B1D1F0E15DE007C1436 /* libksygpulive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */; }; 25 816D7B1D1F0E15DE007C1436 /* libksygpulive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */; };
26 816D7B231F0E15FC007C1436 /* GPUImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 26 816D7B231F0E15FC007C1436 /* GPUImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
27 816D7B251F0E15FC007C1436 /* libksygpulive.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 27 816D7B251F0E15FC007C1436 /* libksygpulive.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
  28 + 8188FACB1F27275B006C34B2 /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8188FACA1F27275B006C34B2 /* CNLivePlayerSDK.framework */; };
  29 + 8188FACC1F272762006C34B2 /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8188FACA1F27275B006C34B2 /* CNLivePlayerSDK.framework */; };
  30 + 8188FACD1F272762006C34B2 /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8188FACA1F27275B006C34B2 /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
28 819135E81EDFB4EE00C28F12 /* AudioStreamingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E31EDFB4EE00C28F12 /* AudioStreamingViewController.m */; }; 31 819135E81EDFB4EE00C28F12 /* AudioStreamingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E31EDFB4EE00C28F12 /* AudioStreamingViewController.m */; };
29 819135E91EDFB4EE00C28F12 /* StreamerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E51EDFB4EE00C28F12 /* StreamerDetailViewController.m */; }; 32 819135E91EDFB4EE00C28F12 /* StreamerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E51EDFB4EE00C28F12 /* StreamerDetailViewController.m */; };
30 819135EA1EDFB4EE00C28F12 /* StreamerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E71EDFB4EE00C28F12 /* StreamerViewController.m */; }; 33 819135EA1EDFB4EE00C28F12 /* StreamerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819135E71EDFB4EE00C28F12 /* StreamerViewController.m */; };
31 - 819EEC071F1F5676004F8CDF /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 819EEC061F1F5676004F8CDF /* CNLivePlayerSDK.framework */; };  
32 - 819EEC081F1F57BC004F8CDF /* CNLivePlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 819EEC061F1F5676004F8CDF /* CNLivePlayerSDK.framework */; };  
33 - 819EEC091F1F57BC004F8CDF /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 819EEC061F1F5676004F8CDF /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };  
34 819EEC0B1F1F58DA004F8CDF /* KSYGPUResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */; }; 34 819EEC0B1F1F58DA004F8CDF /* KSYGPUResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */; };
35 81A672051EB1E3D800BC4343 /* See You Again .mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 81A672011EB1E3D800BC4343 /* See You Again .mp3 */; }; 35 81A672051EB1E3D800BC4343 /* See You Again .mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 81A672011EB1E3D800BC4343 /* See You Again .mp3 */; };
36 81A672061EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 81A672021EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 */; }; 36 81A672061EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 81A672021EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 */; };
@@ -50,8 +50,8 @@ @@ -50,8 +50,8 @@
50 dstSubfolderSpec = 10; 50 dstSubfolderSpec = 10;
51 files = ( 51 files = (
52 816D7B251F0E15FC007C1436 /* libksygpulive.framework in Embed Frameworks */, 52 816D7B251F0E15FC007C1436 /* libksygpulive.framework in Embed Frameworks */,
  53 + 8188FACD1F272762006C34B2 /* CNLivePlayerSDK.framework in Embed Frameworks */,
53 812245E21F21F649008C2B64 /* CNLiveMsgTools.framework in Embed Frameworks */, 54 812245E21F21F649008C2B64 /* CNLiveMsgTools.framework in Embed Frameworks */,
54 - 819EEC091F1F57BC004F8CDF /* CNLivePlayerSDK.framework in Embed Frameworks */,  
55 816D7B231F0E15FC007C1436 /* GPUImage.framework in Embed Frameworks */, 55 816D7B231F0E15FC007C1436 /* GPUImage.framework in Embed Frameworks */,
56 ); 56 );
57 name = "Embed Frameworks"; 57 name = "Embed Frameworks";
@@ -83,13 +83,13 @@ @@ -83,13 +83,13 @@
83 8156819D1ED7DEE100635393 /* CNLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveViewController.m; sourceTree = "<group>"; }; 83 8156819D1ED7DEE100635393 /* CNLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveViewController.m; sourceTree = "<group>"; };
84 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GPUImage.framework; sourceTree = "<group>"; }; 84 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GPUImage.framework; sourceTree = "<group>"; };
85 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = libksygpulive.framework; sourceTree = "<group>"; }; 85 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = libksygpulive.framework; sourceTree = "<group>"; };
  86 + 8188FACA1F27275B006C34B2 /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; };
86 819135E21EDFB4EE00C28F12 /* AudioStreamingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioStreamingViewController.h; sourceTree = "<group>"; }; 87 819135E21EDFB4EE00C28F12 /* AudioStreamingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioStreamingViewController.h; sourceTree = "<group>"; };
87 819135E31EDFB4EE00C28F12 /* AudioStreamingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioStreamingViewController.m; sourceTree = "<group>"; }; 88 819135E31EDFB4EE00C28F12 /* AudioStreamingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioStreamingViewController.m; sourceTree = "<group>"; };
88 819135E41EDFB4EE00C28F12 /* StreamerDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerDetailViewController.h; sourceTree = "<group>"; }; 89 819135E41EDFB4EE00C28F12 /* StreamerDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerDetailViewController.h; sourceTree = "<group>"; };
89 819135E51EDFB4EE00C28F12 /* StreamerDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerDetailViewController.m; sourceTree = "<group>"; }; 90 819135E51EDFB4EE00C28F12 /* StreamerDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerDetailViewController.m; sourceTree = "<group>"; };
90 819135E61EDFB4EE00C28F12 /* StreamerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerViewController.h; sourceTree = "<group>"; }; 91 819135E61EDFB4EE00C28F12 /* StreamerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamerViewController.h; sourceTree = "<group>"; };
91 819135E71EDFB4EE00C28F12 /* StreamerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerViewController.m; sourceTree = "<group>"; }; 92 819135E71EDFB4EE00C28F12 /* StreamerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamerViewController.m; sourceTree = "<group>"; };
92 - 819EEC061F1F5676004F8CDF /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; };  
93 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = KSYGPUResource.bundle; sourceTree = "<group>"; }; 93 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = KSYGPUResource.bundle; sourceTree = "<group>"; };
94 81A672011EB1E3D800BC4343 /* See You Again .mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = " See You Again .mp3"; sourceTree = "<group>"; }; 94 81A672011EB1E3D800BC4343 /* See You Again .mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = " See You Again .mp3"; sourceTree = "<group>"; };
95 81A672021EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "Idina Menzel - Let It Go.mp3"; sourceTree = "<group>"; }; 95 81A672021EB1E3D800BC4343 /* Idina Menzel - Let It Go.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "Idina Menzel - Let It Go.mp3"; sourceTree = "<group>"; };
@@ -110,12 +110,12 @@ @@ -110,12 +110,12 @@
110 isa = PBXFrameworksBuildPhase; 110 isa = PBXFrameworksBuildPhase;
111 buildActionMask = 2147483647; 111 buildActionMask = 2147483647;
112 files = ( 112 files = (
113 - 819EEC071F1F5676004F8CDF /* CNLivePlayerSDK.framework in Frameworks */,  
114 812245E01F21F63A008C2B64 /* CNLiveMsgTools.framework in Frameworks */, 113 812245E01F21F63A008C2B64 /* CNLiveMsgTools.framework in Frameworks */,
115 816D7B1D1F0E15DE007C1436 /* libksygpulive.framework in Frameworks */, 114 816D7B1D1F0E15DE007C1436 /* libksygpulive.framework in Frameworks */,
116 816D7B1C1F0E15DE007C1436 /* GPUImage.framework in Frameworks */, 115 816D7B1C1F0E15DE007C1436 /* GPUImage.framework in Frameworks */,
117 - 819EEC081F1F57BC004F8CDF /* CNLivePlayerSDK.framework in Frameworks */, 116 + 8188FACC1F272762006C34B2 /* CNLivePlayerSDK.framework in Frameworks */,
118 812245E11F21F649008C2B64 /* CNLiveMsgTools.framework in Frameworks */, 117 812245E11F21F649008C2B64 /* CNLiveMsgTools.framework in Frameworks */,
  118 + 8188FACB1F27275B006C34B2 /* CNLivePlayerSDK.framework in Frameworks */,
119 ); 119 );
120 runOnlyForDeploymentPostprocessing = 0; 120 runOnlyForDeploymentPostprocessing = 0;
121 }; 121 };
@@ -215,9 +215,9 @@ @@ -215,9 +215,9 @@
215 816D7B131F0E158F007C1436 /* CNLiveSDKs */ = { 215 816D7B131F0E158F007C1436 /* CNLiveSDKs */ = {
216 isa = PBXGroup; 216 isa = PBXGroup;
217 children = ( 217 children = (
  218 + 8188FACA1F27275B006C34B2 /* CNLivePlayerSDK.framework */,
218 812245DF1F21F63A008C2B64 /* CNLiveMsgTools.framework */, 219 812245DF1F21F63A008C2B64 /* CNLiveMsgTools.framework */,
219 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */, 220 819EEC0A1F1F58DA004F8CDF /* KSYGPUResource.bundle */,
220 - 819EEC061F1F5676004F8CDF /* CNLivePlayerSDK.framework */,  
221 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */, 221 816D7B1A1F0E15DE007C1436 /* GPUImage.framework */,
222 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */, 222 816D7B1B1F0E15DE007C1436 /* libksygpulive.framework */,
223 ); 223 );
CNLivePlayerSDKTest/CNLiveSDKs/CNLivePlayerSDK.framework/CNLivePlayerSDK
No preview for this file type
CNLivePlayerSDKTest/CNLiveSDKs/CNLivePlayerSDK.framework/Headers/CNLiveMoviePlayerController.h
@@ -117,7 +117,7 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL @@ -117,7 +117,7 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL
117 */ 117 */
118 - (instancetype)initWithContentURL:(NSURL *)url; 118 - (instancetype)initWithContentURL:(NSURL *)url;
119 119
120 -/* 解码方式(硬解/软解/自动 120 +/* 解码方式(硬解/软解/自动/使用系统接口进行解码和渲染
121 * 121 *
122 * 建议系统版本高于8.0 选择硬解,或者自动选择解码方式,8.0以上的系统优先选择硬解 122 * 建议系统版本高于8.0 选择硬解,或者自动选择解码方式,8.0以上的系统优先选择硬解
123 * 只在[prepareToPlay]调用前设置生效 123 * 只在[prepareToPlay]调用前设置生效
@@ -125,6 +125,36 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL @@ -125,6 +125,36 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL
125 */ 125 */
126 @property(nonatomic) CNLiveMovieVideoDecoderMode videoDecoderMode; 126 @property(nonatomic) CNLiveMovieVideoDecoderMode videoDecoderMode;
127 127
  128 +/**
  129 + @abstract 是否静音
  130 + @discussion
  131 + * 默认不静音
  132 + * [prepareToPlay]方法前设置即生效,也可以在播放过程中动态切换
  133 + */
  134 +@property(nonatomic) BOOL shouldMute;
  135 +
  136 +/**
  137 + @abstract 是否循环播放
  138 + @discussion 默认不循环
  139 + * 只在[prepareToPlay]调用前设置生效;
  140 + * 只有点播生效,直播场景请勿设置
  141 + */
  142 +@property(nonatomic) BOOL shouldLoop;
  143 +
  144 +/**
  145 + @abstract 指定逆时针旋转角度,只能是0/90/180/270, 不符合上述值不进行旋转
  146 + */
  147 +@property (nonatomic, assign) int rotateDegress;
  148 +
  149 +/**
  150 + @abstract 是否打断其他后台的音乐播放
  151 + @discussion 也可以理解为是否允许和其他音频同时播放
  152 + @discussion YES:开始播放时,会打断其他的后台播放音频,也会被其他音频播放打断
  153 + @discussion NO: 可以与其他后台播放共存,相互之间不会被打断
  154 + @discussion 默认为YES
  155 + */
  156 +@property(nonatomic) BOOL bInterruptOtherAudio;
  157 +
128 /* 重新启动拉流 158 /* 重新启动拉流
129 * 159 *
130 * url 视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址 160 * url 视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址
@@ -209,12 +239,20 @@ MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification N @@ -209,12 +239,20 @@ MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification N
209 */ 239 */
210 @property(nonatomic) NSTimeInterval currentPlaybackTime; 240 @property(nonatomic) NSTimeInterval currentPlaybackTime;
211 241
  242 +/**
  243 + @abstract 跳转到指定位置播放
  244 + @param pos 跳转到的位置,单位秒
  245 + @param isAccurate 是否精确跳转,NO时等同于currentPlaybackTime, YES时为精确跳转
  246 + @discussion 媒体文件总时长较小且关键帧间隔较大时,需要使用精确跳转, 总时长较大或者不需要精确定位时可以使用currentPlaybackTime或者将isAccurate设置为NO进行跳转
  247 + */
  248 +- (void)seekTo:(double)pos accurate:(BOOL)isAccurate;
  249 +
212 /* 250 /*
213 - * 当前视频总时长(只读) 251 + * 当前视频总时长(只读),单位是秒
214 */ 252 */
215 @property (nonatomic, readonly) NSTimeInterval duration; 253 @property (nonatomic, readonly) NSTimeInterval duration;
216 254
217 -/* 当前视频可播放长度(只读) 255 +/* 当前视频可播放长度(只读),单位是秒
218 * 256 *
219 * currentPlaybackTime 标记的是播放器当前已播放的时长。 257 * currentPlaybackTime 标记的是播放器当前已播放的时长。
220 * playableDuration 标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度。 258 * playableDuration 标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度。
CNLivePlayerSDKTest/CNLiveSDKs/CNLivePlayerSDK.framework/Headers/CNLiveTypeDef.h
@@ -223,6 +223,8 @@ typedef NS_ENUM(NSUInteger, CNLiveMovieVideoDecoderMode) { @@ -223,6 +223,8 @@ typedef NS_ENUM(NSUInteger, CNLiveMovieVideoDecoderMode) {
223 CNLiveMovieVideoDecoderMode_Hardware, 223 CNLiveMovieVideoDecoderMode_Hardware,
224 ///自动选择解码方式,8.0以上的系统优先选择硬解 224 ///自动选择解码方式,8.0以上的系统优先选择硬解
225 CNLiveMovieVideoDecoderMode_AUTO, 225 CNLiveMovieVideoDecoderMode_AUTO,
  226 + ///使用系统接口进行解码和渲染,只适用于8.0及以上系统,低于8.0的系统自动使用软解
  227 + CNLiveMovieVideoDecoderMode_DisplayLayer,
226 }; 228 };
227 229
228 /** 230 /**
CNLivePlayerSDKTest/CNLiveSDKs/CNLivePlayerSDK.framework/Info.plist
No preview for this file type
北京中投视讯播放SDK说明文档.pdf
No preview for this file type
发布版SDK/CNLivePlayerSDK.framework/CNLivePlayerSDK
No preview for this file type
发布版SDK/CNLivePlayerSDK.framework/Headers/CNLiveMoviePlayerController.h
@@ -117,7 +117,7 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL @@ -117,7 +117,7 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL
117 */ 117 */
118 - (instancetype)initWithContentURL:(NSURL *)url; 118 - (instancetype)initWithContentURL:(NSURL *)url;
119 119
120 -/* 解码方式(硬解/软解/自动 120 +/* 解码方式(硬解/软解/自动/使用系统接口进行解码和渲染
121 * 121 *
122 * 建议系统版本高于8.0 选择硬解,或者自动选择解码方式,8.0以上的系统优先选择硬解 122 * 建议系统版本高于8.0 选择硬解,或者自动选择解码方式,8.0以上的系统优先选择硬解
123 * 只在[prepareToPlay]调用前设置生效 123 * 只在[prepareToPlay]调用前设置生效
@@ -125,6 +125,36 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL @@ -125,6 +125,36 @@ FOUNDATION_EXPORT NSString *const CNLiveAnchorStatusChangedNotification NS_AVAIL
125 */ 125 */
126 @property(nonatomic) CNLiveMovieVideoDecoderMode videoDecoderMode; 126 @property(nonatomic) CNLiveMovieVideoDecoderMode videoDecoderMode;
127 127
  128 +/**
  129 + @abstract 是否静音
  130 + @discussion
  131 + * 默认不静音
  132 + * [prepareToPlay]方法前设置即生效,也可以在播放过程中动态切换
  133 + */
  134 +@property(nonatomic) BOOL shouldMute;
  135 +
  136 +/**
  137 + @abstract 是否循环播放
  138 + @discussion 默认不循环
  139 + * 只在[prepareToPlay]调用前设置生效;
  140 + * 只有点播生效,直播场景请勿设置
  141 + */
  142 +@property(nonatomic) BOOL shouldLoop;
  143 +
  144 +/**
  145 + @abstract 指定逆时针旋转角度,只能是0/90/180/270, 不符合上述值不进行旋转
  146 + */
  147 +@property (nonatomic, assign) int rotateDegress;
  148 +
  149 +/**
  150 + @abstract 是否打断其他后台的音乐播放
  151 + @discussion 也可以理解为是否允许和其他音频同时播放
  152 + @discussion YES:开始播放时,会打断其他的后台播放音频,也会被其他音频播放打断
  153 + @discussion NO: 可以与其他后台播放共存,相互之间不会被打断
  154 + @discussion 默认为YES
  155 + */
  156 +@property(nonatomic) BOOL bInterruptOtherAudio;
  157 +
128 /* 重新启动拉流 158 /* 重新启动拉流
129 * 159 *
130 * url 视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址 160 * url 视频播放地址,该地址可以是本地地址或者服务器地址.如果为nil,则使用前一次播放地址
@@ -209,12 +239,20 @@ MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification N @@ -209,12 +239,20 @@ MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification N
209 */ 239 */
210 @property(nonatomic) NSTimeInterval currentPlaybackTime; 240 @property(nonatomic) NSTimeInterval currentPlaybackTime;
211 241
  242 +/**
  243 + @abstract 跳转到指定位置播放
  244 + @param pos 跳转到的位置,单位秒
  245 + @param isAccurate 是否精确跳转,NO时等同于currentPlaybackTime, YES时为精确跳转
  246 + @discussion 媒体文件总时长较小且关键帧间隔较大时,需要使用精确跳转, 总时长较大或者不需要精确定位时可以使用currentPlaybackTime或者将isAccurate设置为NO进行跳转
  247 + */
  248 +- (void)seekTo:(double)pos accurate:(BOOL)isAccurate;
  249 +
212 /* 250 /*
213 - * 当前视频总时长(只读) 251 + * 当前视频总时长(只读),单位是秒
214 */ 252 */
215 @property (nonatomic, readonly) NSTimeInterval duration; 253 @property (nonatomic, readonly) NSTimeInterval duration;
216 254
217 -/* 当前视频可播放长度(只读) 255 +/* 当前视频可播放长度(只读),单位是秒
218 * 256 *
219 * currentPlaybackTime 标记的是播放器当前已播放的时长。 257 * currentPlaybackTime 标记的是播放器当前已播放的时长。
220 * playableDuration 标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度。 258 * playableDuration 标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度。
发布版SDK/CNLivePlayerSDK.framework/Headers/CNLiveTypeDef.h
@@ -223,6 +223,8 @@ typedef NS_ENUM(NSUInteger, CNLiveMovieVideoDecoderMode) { @@ -223,6 +223,8 @@ typedef NS_ENUM(NSUInteger, CNLiveMovieVideoDecoderMode) {
223 CNLiveMovieVideoDecoderMode_Hardware, 223 CNLiveMovieVideoDecoderMode_Hardware,
224 ///自动选择解码方式,8.0以上的系统优先选择硬解 224 ///自动选择解码方式,8.0以上的系统优先选择硬解
225 CNLiveMovieVideoDecoderMode_AUTO, 225 CNLiveMovieVideoDecoderMode_AUTO,
  226 + ///使用系统接口进行解码和渲染,只适用于8.0及以上系统,低于8.0的系统自动使用软解
  227 + CNLiveMovieVideoDecoderMode_DisplayLayer,
226 }; 228 };
227 229
228 /** 230 /**
发布版SDK/CNLivePlayerSDK.framework/Info.plist
No preview for this file type