Media Call SDK

Live Media Sharing

+

Video Chat for Your App

Increase engagement and revenue by letting your user view photos together with friends, live and do live video chat, right within your app

Integration is Easy

Free Until the End of March 2018

No Credit Card Required

View Photos Together

Instantly flip through photos with friends

Unlimited sharing capacity

Starting at $0.01 per user, per session to share photos

Video and Text Chat

Video and Audio Chat

Text chat with Emojis

Starting at $0.01 per user, per session to share photos

For unlimited usage please contact us

To Add the SDK to your App Just Sign-up Now

Please sign-up below to receive your activation credential, by email, from DabKick.

To add the SDK to your app, just follow these 3 easy steps

Step 1

  • Downloading using Cocoapods:
    1. Install Cocoapods on your machine
    2. Run pod init'
  • Add the line pod 'DabKickLiveSessionSdk' to your Podfile
  • Add the line use_frameworks! to your Podfile
  • Run pod install
  • Open your newly created *.xcworkspace project
  • If you don't want to use Cocoapods, you can download the framework directly here
    1. Download and unzip the DabKickLiveSessionSdk.framework file
    2. Drag the framework file into your XCode project navigator to add it to your project
    3. In your app target file, click on the "General" tab, and add DabKickLiveSessionSdk.framework into the "Embedded Binaries" and "Linked Frameworks and Libraries" section

  • Step 2

    • Set up your project's Info.plist
      • Add your developer key and developer ID properties into your app’s Info.plist file. To get to the Info.plist page, search for the file with this format: YourProjectNameHere-Info.plist
      • Add permissions for photo library usage (to browse photos to stage), camera usage (to set up profile and live stream), and microphone usage (to live stream)
      • Add the following URL scheme to handle live session invitations
        • URL identifier: "com.dabkick.livesessionsdk"
        • URL Schemes: [" yourDeveloperId"]
    • Import the DabKickLiveSessionSdk.h header file into your view controller and AppDelegate.m file
      #import <DabKickLiveSessionSdk/DabKickLiveSessionSdk.h>
    • In your view controller, set your view controller to follow the DabKickLiveSessionSdkDelegate protocol
      @interface ViewController () <DabKickLiveSessionSdkDelegate>

    Step 3

    Simply Copy and Paste the code below into your app code
    • Paste the following code into your view controller
      
      /**
          * Place the "Watch Together" button and set up the SDK delegate
          * When the user clicks on the "Watch Together" button, it will call on the delegate method startDabKickLiveSessionWithContent:
          * defined below to get images to start a live session with, and then the app open the Live Session UI
          */
      - (void)viewDidLoad
      {
          [super viewDidLoad];
      
          DabKickWatchTogetherButton *dabKickWatchTogetherButton = [[DabKickLiveSessionSdk defaultInstance] getWatchTogetherButton];
          [dabKickWatchTogetherButton sizeToFit];
          [self.view addSubview:dabKickWatchTogetherButton];
          dabKickWatchTogetherButton.center = self.view.center;
      
          [DabKickLiveSessionSdk defaultInstance].delegate = self;
      }
      
      
      
      /**
          * Return images to start a live session with
          */
      - (NSArray<id<DabKickContent>> *)startDabKickLiveSessionWithContent:(DabKickLiveSessionSdk *)liveSessionInstance {
          NSArray <UIImage *> *imagesToStart = @[
              /**
                  * Replace images with images you would like to show when the live session starts
                  */
              [UIImage imageNamed:@"smiley"],
              [UIImage imageNamed:@"angry"],
              [UIImage imageNamed:@"cool"]
          ];
      
          NSMutableArray<id <DabKickContent> > *contentArray = [[NSMutableArray alloc] initWithCapacity:imagesToStage.count];
          [self.imagesToStage enumerateObjectsUsingBlock:^(ALAsset * _Nonnull asset, NSUInteger idx, BOOL * _Nonnull stop) {
              ALAssetRepresentation *defaultRep = [asset defaultRepresentation];
              UIImage *image = [UIImage imageWithCGImage:[defaultRep fullScreenImage] scale:[defaultRep scale] orientation:0];
      
              DabKickImageContent *imageContent = [[DabKickImageContent alloc] init];
              imageContent.image = image;
      
              [contentArray addObject:imageContent];
          }];
      
          return contentArray;
      }
      
      /**
          * Get category names for images
          */
      -(void)categoryNamesForDabKickLiveSession:(DabKickLiveSessionSdk *)liveSessionInstance offset:(NSUInteger)offset contentType:(DabKickContentType)contentType loader:(id<DabKickStringLoading>)loader {
          static NSArray *categories;
          static dispatch_once_t onceToken;
          dispatch_once(&onceToken, ^{
              categories = @[
                          @"Ahjumawi Lava Springs State Park",
                          @"Andrew Molera State Park",
                          @"Angel Island State Park",
                          @"Annadel State Park",
                          @"Ano Nuevo Island State Park",
                          @"Anza-Borrego Desert State Park",
                          @"Arthur B. Ripley Desert Woodland State Park",
                          @"Baker Beach State Park",
                          @"Beach State Park",
                          @"Bidwell-Sacramento River State Park",
                          @"Big Basin Redwoods State Park",
                          @"Bolsa Chica Beach State Park",
                          @"Border Field State Park"
                          ];
          });
      
          NSInteger nextLoadAmount = 5;
          NSInteger remainingCount = categories.count - offset;
          if (remainingCount < nextLoadAmount) {
              nextLoadAmount = remainingCount;
          }
      
          [loader send:[categories subarrayWithRange:NSMakeRange(offset, nextLoadAmount)]];
      }
      
      
      
      /**
          * Get content for a category
          */
      - (void)dabKickLiveSession:(DabKickLiveSessionSdk *)liveSessionInstance contentForCategory:(NSString *)title offset:(NSUInteger)offset contentType:(DabKickContentType)contentType loader:
      (id<DabKickContentLoading>)loader {
          /**
           * Replace this line to return images from your application or service
           */
          NSArray <UIImage *> *imagesArray = [self getImagesForCategoryWithTitle:title offset:offset];
      
          NSMutableArray <id <DabKickContent>> *contentArray = [[NSMutableArray alloc] initWithCapacity:imagesArray.count];
          [imagesArray enumerateObjectsUsingBlock:^(id _Nonnull content, NSUInteger idx, BOOL * _Nonnull stop) {
              DabKickImageContent *imageContent = [[DabKickImageContent alloc] init];
              imageContent.image = content;
              [contentArray addObject:imageContent];
          }];
      
          [loader send:contentArray];
      }
                                      
    • Paste the following code into your AppDelegate.m file
      
      /**
       * Pass invitation deep linking to the SDK
       */
      - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { return [[DabKickLiveSessionSdk defaultInstance] application:app openURL:url options:options]; }