说明:

本SDK(MobVideoSDK)既可独立使用,也可以组合广告SDK(MobADSDK)使用,独立使用则没有广告,组合广告SDK可在视频流流展示广告,实现App收益。

一、SDK集成

1.1.1 info.plist配置

  • App Transport Security Settings -> Allow Arbitrary Loads:YES

1.1.2 Pod依赖

source 'https://gitee.com/mobad/Specs.git' # 自建仓库,须放在 CocoaPods 前面
source 'https://github.com/CocoaPods/Specs.git'

# platform :ios, '9.0'
target 'podTest' do
  # use_frameworks!
  pod 'AFNetworking'
  pod 'MJExtension'
  pod 'ReactiveObjC'
  pod 'MobVideoSDK', '~> 2.2.9'
  # Pods for podTest
end

ReactiveObjC与ReactiveObjC-bm的区别、
安装CocoaPods及广告所需的Pod依赖请见MobADSDK说明文档

二、初始化

如果支持广告,由于视频流SDK是依赖广告SDK,所以要先初始化广告SDK

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
#if MobADSDKEnable
    // 1.初始化广告SDK
    MobADConfigModel *adConfig = [[MobADConfigModel alloc] init];
    // 渠道id,必填(由我司分配)
    adConfig.appId = @"ba0063bfbc1a5ad878";
    if ([MobADSDKApi setupWithConfig:adConfig]) {
        NSLog(@"MobADSDK setup ok");
    }
#endif
    
    // 2.初始化视频SDK
    MobVideoSDKConfig *config = [MobVideoSDKConfig new];
    // 渠道id,必填(由我司分配)
    config.appId = @"ba0063bfbc1a5ad878";
    if ([MobVideoSDKApi setupWithConfig:config]) {
        NSLog(@"MobVideoSDK setup ok");
    }
    
    return YES;
}

三、视频流

3.1.1 调动接口

/**
 * 获取视频feed流视图
 * @param frame 视图的尺寸
 * @param vc 所添加的viewController
 * @param delegate 回调代理
 * @return 视频feed流视图
 */
+ (UIView<MobVideoFeedViewProtocol> *)videoFeedViewWithFrame:(CGRect)frame viewController:(UIViewController *)vc delegate:(_Nullable id<MobVideoFeedViewDelegate>)delegate;
@end

3.1.2 回调接口

@protocol MobVideoFeedViewDelegate <NSObject>

- (void)video_shouldShowLoadingViewForVideoFeedView:(UIView<MobVideoFeedViewProtocol> *)feedView;
- (void)video_shouldHideLoadingViewForVideoFeedView:(UIView<MobVideoFeedViewProtocol> *)feedView;
- (void)video_shouldShowRetryViewForVideoFeedView:(UIView<MobVideoFeedViewProtocol> *)feedView;
- (void)video_shouldHideRetryViewForVideoFeedView:(UIView<MobVideoFeedViewProtocol> *)feedView;

// 返回播放器上层的工具视图
- (UIView *)video_playerToolViewForInfo:(NSDictionary *)video;

// 普通视频回调
- (void)video_playerOnPrepare:(id<BMVVideoPlayerProtocol>)player;
- (void)video_playerOnPlaying;
- (void)video_playerOnProgress:(CGFloat)progress duration:(CGFloat)duration;
- (void)video_playerOnPause;
- (void)video_playerOnStop;
- (void)video_playerPlayFinished;
- (void)video_playerPlayError:(NSError *)error;

// 广告视频回调
- (void)video_ad_playerOnPrepare:(NSDictionary *)adInfo;
- (void)video_ad_playerOnPlaying;
- (void)video_ad_playerOnPause;
- (void)video_ad_playerPlayFinished;
- (void)video_ad_playerPlayError:(NSError *)error;

@end

3.2 示例代码

详见Demo