Latest 1.0.3
Homepage https://github.com/Vbytes/VbyteP2PFramework
License MIT
Platforms ios 8.0
Authors

Vbyte P2P IOS SDK

CI Status
Version
License
Platform

vbyte云视频解决方案,可帮助用户直接使用经过大规模验证的直播流媒体分发服务,通过vbyte成熟的P2P技术大幅节省带宽,提供更优质的用户体验。开发者可通过SDK中简洁的接口快速同自有应用集成,实现iOS设备上的视频P2P加速功能。

功能

  • 直播、点播基本功能+P2P
  • 直播时移支持
  • 直播HLS P2P原生支持
  • 防盗播支持

依赖安装

IOS SDK托管于第三方平台CocoaPods上,依赖部署是非常简单的。凭借这设计良好的接口,在使用上也非常方便。

  • 由于依赖库超过100MB,需要git-lfs来管理,所以首先安装git-lfs,以在git clone时将依赖库能下载下来
# 参考:https://git-lfs.github.com/
# 如果你使用的是Homebrew,可以如下安装 
$ brew install git-lfs
# 系统默认使用MacPorts安装 
$ port install git-lfs

# 安装完别忘记先在系统内初始化,只需要执行一次,以后每个项目都可以使用
$ git lfs install
  • 将以下依赖加进项目的Podfile中
pod 'VbyteP2P', '~> 1.0.1'
  • 在项目根目录下,执行pod install
cd /path/to/your/application
pod install
  • 打开自动生成的xcworkspace,在代码中引入#import <VbyteP2P/P2PModule.h>即可使用

开始使用

  • 首先参考资源管理开发者中心上注册帐号,创建应用,创建应用时要写对包名。然后得到相应的app id,app key与app secret key
  • 第二步,P2P模块的应用生命周期管理:在应用启动之初,启动P2PModule;在应用结束时销毁P2PModule
    
    // Example: 程序的入口AppDelegate.m

import "AppDelegate.h"

import <VbyteP2P/P2PModule.h>

@implementation AppDelegate

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
    {
    // do something other…

    // 初始化P2P
    NSString appID = @"577cddf55aa77e385435dcff";
    NSString
    key = @"ZiMAWNyAdKhjATiK";
    NSString *secret = @"NxSMiy6VUqRel1Cf5OLoCJSjZDQFgaC4";
    [P2PModule init:appID appKey:key appSecretKey:secret];

    return YES;
    }

// something other function…

  • (void)applicationWillTerminate:(UIApplication *)application
    {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

    // 释放P2P模块
    [P2PModule release];
    }

@end


#### 使用直播

直播大家都很熟悉,观众一进来都是直接看到最新的直播内容,本是没有暂停、随机播放(回看)功能。但是应时移回看需求的增长,我们的SDK也提供了时移回看的方式,详细见[API文档][2]。

- 启动一个直播频道的过程如下,其中第2个参数是写死的,必须为UHD;未来多码率支持可能会有HD等更多参数选择:
```Objective-c
// Example: LiveVideoController.m

#import <VbyteP2P/P2PModule.h>

- (void)viewDidLoad
{
    [super viewDidLoad];

    // do something others as init player and view

    [LiveController load:[channel absoluteString] resolution:@"UHD" listener:^(NSURL *url){
        if (url != nil) {
            self.url = url
            [self.player prepareToPlay:[url absoluteString]];
        }
    }];
}
  • 退出当前直播播放频道,只需要调用unload即可
    
    // Example: LiveVideoController.m

import <VbyteP2P/P2PModule.h>

  • (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [self.player shutdown];
    [self removeMovieNotificationObservers];

    // 直播停止的地方
    [LiveController unload];
    }

使用点播

点播与直播最大的不同是点播视频是固定的,包括文件大小固定、内容固定、视频时长固定,有暂停、恢复、随机播放等操作。

  • 启动一个点播频道的过程如下:
    
    // Example: VodVideoController.m

import <VbyteP2P/P2PModule.h>

  • (void)viewDidLoad
    {
    [super viewDidLoad];

    // do something others as init player and view

    [VodController load:[url absoluteString] resolution:@"UHD" startTime:0 listener:^(NSURL *url){
    if (url != nil) {
    self.url = url
    [self.player prepareToPlay:[url absoluteString]];
    }
    }];
    }

  • 暂停和恢复当前点播节目:
    // 在播放器暂停按钮按下时,应调用
    [VodController pause];
    // 在播放器播放按钮按下时,恢复播放
    [VodController resume];
  • 点播视频支持在不重启播放器的情况下随机位置播放,这在观众滑动进度条时发生,此时播放器会从进度条位置重新加载,而P2P模块能自动感知这样的seek行为,您不用为此做什么。
  • 退出当前点播播放频道,只需要调用unload即可
    
    // Example: VodVideoController.m

import <VbyteP2P/P2PModule.h>

  • (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [self.player shutdown];
    [self removeMovieNotificationObservers];

    // 直播停止的地方
    [VodController unload];
    }

高级功能

更多高级功能诸如开启debug开关、事件监听、直播时移等请参见IOS版API文档,然后就可以尽情地使用P2P SDK带来的便利功能吧!

扩展链接

  • Github: SDK的开源代码仓库
  • IOSSample: 一个使用ijkplayer的简单样例
  • API Doc: 更加详细的API文档,其中包含如直播时移的高级功能使用方法

技术支持

感谢阅读本篇文档,希望能帮您尽快上手IOS SDK的用法,再次欢迎您使用月光石P2P加速SDK!

温馨提示:如果你需要任何帮助,或有任何疑问,请联系我们

Latest podspec

{
    "name": "VbyteP2P",
    "version": "1.0.3",
    "summary": "P2P engine for videos playback.",
    "description": "This is a library for ios, it can help your app reduce bandwidth cost rely on its peer-to-peer acceleration. It is maintained by Vbyte.cn. Welcome and Thank you for using it!",
    "homepage": "https://github.com/Vbytes/VbyteP2PFramework",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Vbytes": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Vbytes/VbyteP2PFramework.git",
        "tag": "1.0.3"
    },
    "platforms": {
        "ios": "8.0"
    },
    "ios": {
        "vendored_frameworks": "VbyteP2P/Frameworks/VbyteP2P.framework",
        "libraries": "stdc++.6.0.9"
    }
}

Pin It on Pinterest

Share This