All Projects → opentok → Opentok Ios Sdk Samples

opentok / Opentok Ios Sdk Samples

Licence: mit
Example applications that use the OpenTok iOS SDK

Projects that are alternatives of or similar to Opentok Ios Sdk Samples

accelerator-core-ios
Syntax sugar of OpenTok iOS SDK with Audio/Video communication including screen sharing
Stars: ✭ 30 (-83.87%)
Mutual labels:  real-time, communication, realtime, screen-capture
Applozic Android Sdk
Android Real Time Chat & Messaging SDK
Stars: ✭ 611 (+228.49%)
Mutual labels:  communication, real-time, realtime
Skylinkjs
SkylinkJS Javascript WebRTC SDK
Stars: ✭ 269 (+44.62%)
Mutual labels:  audio, webrtc, real-time
Libcrtc
WebRTC C++ library built on top of chromium webrtc.
Stars: ✭ 89 (-52.15%)
Mutual labels:  audio, communication, webrtc
Webrtc Cli
WebRTC command-line peer.
Stars: ✭ 135 (-27.42%)
Mutual labels:  audio, webrtc, real-time
Screenity
The most powerful screen recorder & annotation tool for Chrome 🎥
Stars: ✭ 6,229 (+3248.92%)
Mutual labels:  audio, screen-capture, screencast
Briefing
Secure direct video group chat
Stars: ✭ 710 (+281.72%)
Mutual labels:  audio, communication, webrtc
Rtmlton
MLton with Realtime GC and Threading features
Stars: ✭ 98 (-47.31%)
Mutual labels:  real-time, realtime
Quickblox Javascript Sdk
JavaScript SDK of QuickBlox cloud backend platform
Stars: ✭ 98 (-47.31%)
Mutual labels:  communication, webrtc
Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (-2.69%)
Mutual labels:  audio, realtime
Laravel Parse
A Parse SDK bridge for Laravel 5
Stars: ✭ 116 (-37.63%)
Mutual labels:  real-time, realtime
Sandstone
PHP microframework designed to build a RestApi working together with a websocket server. Build a real time RestApi!
Stars: ✭ 98 (-47.31%)
Mutual labels:  real-time, realtime
Soundpusher
Virtual audio device, real-time encoder and SPDIF forwarder for macOS
Stars: ✭ 91 (-51.08%)
Mutual labels:  audio, real-time
One To One Sample Apps
DEPRECATED: OpenTok One-to-One Communication Sample App
Stars: ✭ 99 (-46.77%)
Mutual labels:  audio, communication
Multihack Web
Realtime collaboration for programmers. (Web Version)
Stars: ✭ 85 (-54.3%)
Mutual labels:  webrtc, real-time
Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (-44.09%)
Mutual labels:  communication, real-time
Rtp
A Go implementation of RTP
Stars: ✭ 120 (-35.48%)
Mutual labels:  audio, webrtc
Instacam
Instant canvas video
Stars: ✭ 106 (-43.01%)
Mutual labels:  audio, webrtc
Kepler
The open source full-stack geosocial network platform
Stars: ✭ 125 (-32.8%)
Mutual labels:  real-time, realtime
Aws Mobile Appsync Events Starter React Native
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 134 (-27.96%)
Mutual labels:  real-time, realtime

Build Status

OpenTok iOS SDK Samples

This repository is meant to provide some examples for you to better understand the features of the OpenTok iOS SDK. The sample applications are meant to be used with the latest version of the OpenTok iOS SDK. Feel free to copy and modify the source code herein for your own projects. Please consider sharing your modifications with us, especially if they might benefit other developers using the OpenTok iOS SDK. See the License for more information.

Quick Start

  1. Get values for your OpenTok API key, session ID, and token. See Obtaining OpenTok Credentials for important information.

  2. Install CocoaPods as described in CocoaPods Getting Started.

  3. In Terminal, cd to your project directory and run pod install.

  4. Open your project in Xcode using the new .xcworkspace file in the project directory.

  5. Set up some config settings for the app. This varies, depending on the project.

  • For the Archiving, Basic-Video-Chat, and Signaling projects, in the Config.h file, replace the following empty strings with the base URL of the server that implements the learning-opentok-php or learning-opentok-node projects:

    #define SAMPLE_SERVER_BASE_URL @"https://YOUR-SERVER-URL"
    

    For more information, see the instructions on setting up these servers in the OpenTok tutorials at the OpenTok developer center

* For all other projects, in the ViewController.m file, replace the following empty strings
  with the corresponding API key, session ID, and token values:

  ```objc
  // *** Fill the following variables using your own Project info  ***
  // ***          https://dashboard.tokbox.com/projects            ***
  // Replace with your OpenTok API key
  static NSString* const kApiKey = @"";
  // Replace with your generated session ID
  static NSString* const kSessionId = @"";
  // Replace with your generated token
  static NSString* const kToken = @"";
  ```
  1. Use Xcode to build and run the app on an iOS simulator or device.

What's Inside

Archiving - This application shows you how to record an OpenTok session.

Basic Video Chat - This basic application demonstrates a short path to getting started with the OpenTok iOS SDK.

Custom Video Driver - This project provides classes that implement the OTVideoCapture and OTVideoRender interfaces of the core Publisher and Subscriber classes. Using these modules, we can see the basic workflow of sourcing video frames from the device camera in and out of OpenTok, via the OTPublisherKit and OTSubscriberKit interfaces.

Custom Audio Driver - This project demonstrate how to use an external audio source with the OpenTok SDK. This project utilizes CoreAudio and the AUGraph API to create an audio session suitable for voice and video communications.

Screen Sharing - This project demonstrates how to use a custom video capturer to publish a stream that uses a UI view (instead of a camera) as the video source.

Live Photo Capture - This project extends the video capture module implemented in project 2, and demonstrates how the AVFoundation media capture APIs can be used to simultaneously stream video and capture high-resolution photos from the same camera.

Simple Multiparty - This project demonstrates how to use the OpenTok iOS SDK for a multi-party call. The application publishes audio/video from an iOS device and can connect to multiple subscribers. However it shows only one subscriber video at a time due to CPU limitations on iOS devices.

Signaling - This project shows you how to implement text chat using the OpenTok signaling API.

Overlay Graphics - This project shows how to overlay graphics for the following:

  • A button for muting the publisher microphone

  • A button for muting the subscriber audio

  • Stream quality notification icons for the subscriber video

  • Archive recording icons

This project barrows publisher and subscribers modules implemented in project 2.

Audio Levels - This project demonstrates how to use the OpenTok iOS SDK for audio-only multi party calls. Both publisher and subscribers are audio-based only. This application also shows how to use the audio level API along with an audio meter UI for visualization of publisher and subscriber audio levels.

Ringtones - This project extends on the work done in Project 3 (Custom Audio Driver) by extending the sample audio driver with an AVAudioPlayer controller, which will play a short ringtone while waiting for the subscriber to connect to the client device.

FrameMetadata -- This project shows how to set metadata (limited to 32 bytes) to a video frame, as well as how to read metadata from a video frame.

Obtaining OpenTok Credentials

To use the OpenTok platform you need a session ID, token, and API Key. You can get these values by creating a project on your OpenTok Account Page and scrolling down to the Project Tools section of your Project page. For production deployment, you must generate the session ID and token values using one of the OpenTok Server SDKs.

Development and Contributing

Interested in contributing? We ❤️ pull requests! See the Contribution guidelines.

Getting Help

We love to hear from you so if you have questions, comments or find a bug in the project, let us know! You can either:

Further Reading

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].