SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
OpenTok 2.0:
Android SDK
Marina Serrano Montes
marinas@tokbox.com
Contents
1. What is OpenTok ?
2. What is WebRTC ?
3. Why using OpenTok ?
4. OpenTokRTC DEMO
5. SDK for Android platform
6. API for Android SDK
7. New features for Android SDK
8. Others APIs
1. What is OpenTok?
OpenTok is a OTT platform.
It delivers all the global infrastructure,
scalability, and features the developers
need to add WebRTC to their website or
mobile application.
2. What is WebRTC?
- A powerful RTC open source standard. It enables real time
communication through a common set of APIs.
-WebRTC defines a way to implement technologies like video chat in a way that
is interoperable with other clients.
- It is available for different browsers (plugin is not required) and for native iOS
and Android platforms.
- WebRTC vs Flash:
better video quality

faster connections time reduced audio/video latency

- Emerging issue: Video Codec debate: VP8 or H.264?
3. Why using OpenTok?
Infrastructure, APIs and tools to unlock the potential of WebRTC

Fewer lines of
code

Native SDK for
mobiles

Experience
optimization

Archiving &
Playback

Robust
signaling

Web SDK

Interoperability

Global
infrastructure

Firewall
transversal
support

Intelligent
quality controls

Multi-party calls

High
performance
3. Why using OpenTok?
Some customer success stories
4. OpenTokRTC DEMO
5. SDK for Android platform

Overall architecture
6. API for Android SDK
Session

Stream

Publisher

Connection

Subscriber

OpenTokException
6. API for Android SDK
Session

Represents an OpenTok session in which the client is participating

Tasks:
Initializing and connect to a session:
public Session (Context context, String sessionId, Listener listener);
public void connect(final String apiKey, final String token);
public void disconnect();

Getting information about the session:
public Connection getConnection();
6. API for Android SDK
Publishing audio-video stream to a session:
public void publish(Publisher publisher);
public void unpublish(Publisher publisher);

Subscribing audio-video stream:
public void subscribe(Subscriber subscriber);
public void unsubscribe(Subscriber subscriber);
6. API for Android SDK
Callbacks:
public void onSessionConnected(Session session);
public void onSessionDisconnected(Session session);
public void onSessionReceivedStream(Session session, Stream stream);
public void onSessionDroppedStream(Session session, Stream stream);
public void onSessionCreatedConnection(Session session, Connection connection);
public void onSessionDroppedConnection(Session session, Connection connection);
public void onSessionError(Session session, OpentokError error);
6. API for Android SDK
Publisher

Captures an audio-video stream from the device’s microphone
and camera. This stream will be published to an OpenTok session.

Tasks:
Initializing a publisher:
public Publisher (Context context, Listener listener, String name) ;

Getting information about the publisher:
public boolean getPublishVideo();
public boolean getPublishAudio();
public Session getSession();
public String getStreamId();
public int getCameraId();
6. API for Android SDK
Controlling audio and video output for a publisher:
public void setPublishVideo(boolean publishVideo);
public void setPublishAudio(boolean publishAudio);

Setting publisher device configuration:
public void setCameraId(int cameraId);
public void swapCamera();

Callbacks:
public
public
public
public

void
void
void
void

onPublisherStreamingStarted();
onPublisherStreamingStopped();
onPublisherChangedCamera(int newCameraId);
onPublisherException(OpentokException exception);
6. API for Android SDK
Subscriber

Used to consume an audio-video stream in the OpenTok session.

Tasks:
Initializing a subscriber:
public Subscriber (Context context , Stream stream )

Getting information about the publisher:
public boolean getSubscriberToVideo();
public boolean getSubscriberToAudio();
public Session getSession();
public String getStream();
public View getView();
6. API for Android SDK
Controlling audio and video playback:
public void setSubscribeToAudio(boolean subscribeToAudio);
public void setSubscribeToVideo(boolean subscribeToVideo);

Callbacks:
public void onSubscriberConnected(Subscriber subscriber);
public void onSubscriberVideoDisabled(Subscriber subscriber);
public void onSubscriberException(Subscriber subscriber,
OpentokException exception);
6. API for Android SDK
Stream

Represents a stream of multimedia, which may contain video
and/or audio data.

Tasks:
Getting basic information about the stream:
public String getStreamId();
public Date getCreationTime();
public Connection getConnection();
public String getName();

Getting audio and video information about the stream:
public int getVideoWidth();

public boolean hasVideo();

public int getVideoHeight();

public boolean hasAudio();
6. API for Android SDK
Connection

Represents a connection between a client and an OpenTok
session.

Tasks:
Getting information about the connection:
public String getConnectionId();
public Date getCreationTime();
public String getData();
6. API for Android SDK
OpenTokException

Defines errors thrown by the OpenTok
Android SDK.

Basic errors categories:
Network error -- unable to connect to the session: check the network connection.
Authentication error -- unable to connect: an invalid API key or token was
provided.
Internal error
7. New features for Android SDK
For next Android SDK release….
Signaling: Sends a signal to each client or specified clients in the session.
public boolean sendSignal(String type, String data);
public boolean sendSignal(String type, String data, ArrayList<Connection> connections);
Callback: void onSignal(Session session, final String type, final String data, String
connectionId, long creationTimeConnection);

Eg: mSession.sendSignal("chat", "hello");
7. New features for Android SDK
and...
Expose video driver & render: Video comes in and out the SDK.
- Developers can use the video driver and video render by default in the SDK.
or
- Developers can implement their own video driver. Some uses cases:
* Don't use the camera of the device by default....
* sending a picture as captured video…
* adding funny effects to the video….
8. Others APIs
Thank you very much

Weitere ähnliche Inhalte

Was ist angesagt?

OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansMichael Vorburger
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0Michael Vorburger
 
AOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformAOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformPeter Pilgrim
 
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...Peter Pilgrim
 
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimJavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimPayara
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017Maarten Balliauw
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development KitPeter R. Egli
 
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-201320120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013MUCUGL
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der KisteUlrich Krause
 
Delivering High Quality Elixir Code using Gitlab
Delivering High Quality Elixir Code using GitlabDelivering High Quality Elixir Code using Gitlab
Delivering High Quality Elixir Code using GitlabTonny Adhi Sabastian
 
Functional Reactive Programming in the Netflix API
Functional Reactive Programming in the Netflix APIFunctional Reactive Programming in the Netflix API
Functional Reactive Programming in the Netflix APIC4Media
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...mfrancis
 
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank WierzbickiJython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank Wierzbickifwierzbicki
 
Get Started with MicroPython ESP32
Get Started with MicroPython ESP32Get Started with MicroPython ESP32
Get Started with MicroPython ESP32fanghe22
 

Was ist angesagt? (16)

OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
 
JavaCro'15 - Reactive I/O - Ivan Turčinović
JavaCro'15 - Reactive I/O - Ivan TurčinovićJavaCro'15 - Reactive I/O - Ivan Turčinović
JavaCro'15 - Reactive I/O - Ivan Turčinović
 
AOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java PlatformAOTB2014: Agile Testing on the Java Platform
AOTB2014: Agile Testing on the Java Platform
 
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...
 
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimJavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017
 
Introduction to jython
Introduction to jythonIntroduction to jython
Introduction to jython
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
 
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-201320120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013
20120726 aj-mucugl-video-conferencing-capabilities-within-lync-2013
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
Delivering High Quality Elixir Code using Gitlab
Delivering High Quality Elixir Code using GitlabDelivering High Quality Elixir Code using Gitlab
Delivering High Quality Elixir Code using Gitlab
 
Functional Reactive Programming in the Netflix API
Functional Reactive Programming in the Netflix APIFunctional Reactive Programming in the Netflix API
Functional Reactive Programming in the Netflix API
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
 
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank WierzbickiJython 2.7 and techniques for integrating with Java - Frank Wierzbicki
Jython 2.7 and techniques for integrating with Java - Frank Wierzbicki
 
Get Started with MicroPython ESP32
Get Started with MicroPython ESP32Get Started with MicroPython ESP32
Get Started with MicroPython ESP32
 

Andere mochten auch

Facebook Platform for Developers
Facebook Platform for DevelopersFacebook Platform for Developers
Facebook Platform for DevelopersLidan Hifi
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Colin Su
 
Getting started with Facebook OpenGraph API
Getting started with Facebook OpenGraph APIGetting started with Facebook OpenGraph API
Getting started with Facebook OpenGraph APILynn Langit
 
Facebook Open Graph API and How To Use It
Facebook Open Graph API and How To Use ItFacebook Open Graph API and How To Use It
Facebook Open Graph API and How To Use ItAayush Shrestha
 
Facebook Open Graph API
Facebook Open Graph APIFacebook Open Graph API
Facebook Open Graph APIColin Smillie
 
LaunchPad Presentation of OpenTok
LaunchPad Presentation of OpenTokLaunchPad Presentation of OpenTok
LaunchPad Presentation of OpenTokTokbox
 

Andere mochten auch (6)

Facebook Platform for Developers
Facebook Platform for DevelopersFacebook Platform for Developers
Facebook Platform for Developers
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)
 
Getting started with Facebook OpenGraph API
Getting started with Facebook OpenGraph APIGetting started with Facebook OpenGraph API
Getting started with Facebook OpenGraph API
 
Facebook Open Graph API and How To Use It
Facebook Open Graph API and How To Use ItFacebook Open Graph API and How To Use It
Facebook Open Graph API and How To Use It
 
Facebook Open Graph API
Facebook Open Graph APIFacebook Open Graph API
Facebook Open Graph API
 
LaunchPad Presentation of OpenTok
LaunchPad Presentation of OpenTokLaunchPad Presentation of OpenTok
LaunchPad Presentation of OpenTok
 

Ähnlich wie Open tok Android sdk - Droidcon

WebRTC Videobroadcasting
WebRTC VideobroadcastingWebRTC Videobroadcasting
WebRTC VideobroadcastingRavi Kuril
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in SecondsWSO2
 
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012Oliver N
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebVũ Nguyễn
 
Introduction To Webrtc
Introduction To WebrtcIntroduction To Webrtc
Introduction To WebrtcKnoldus Inc.
 
2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-tooJeff Brateman
 
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Luis Lopez
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationJooinK
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App DevelopmentAndri Yadi
 
OSCC20 SceneGate, EchoVoice, and IMABox
OSCC20 SceneGate, EchoVoice, and IMABox OSCC20 SceneGate, EchoVoice, and IMABox
OSCC20 SceneGate, EchoVoice, and IMABox Lisa Laxton
 
Hierarchy Viewer Internals
Hierarchy Viewer InternalsHierarchy Viewer Internals
Hierarchy Viewer InternalsKyungmin Lee
 
Introduction to android applications stu
Introduction to android applications stuIntroduction to android applications stu
Introduction to android applications stucbashirmacalin
 
RICOH THETA x IoT Developers Contest : Cloud API Seminar
 RICOH THETA x IoT Developers Contest : Cloud API Seminar RICOH THETA x IoT Developers Contest : Cloud API Seminar
RICOH THETA x IoT Developers Contest : Cloud API Seminarcontest-theta360
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world葵慶 李
 

Ähnlich wie Open tok Android sdk - Droidcon (20)

Webrtc in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
 
WebRTC Videobroadcasting
WebRTC VideobroadcastingWebRTC Videobroadcasting
WebRTC Videobroadcasting
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
 
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
Introduction To Webrtc
Introduction To WebrtcIntroduction To Webrtc
Introduction To Webrtc
 
2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computation
 
What is OZEKI Camera SDK?
What is OZEKI Camera SDK?What is OZEKI Camera SDK?
What is OZEKI Camera SDK?
 
WebRTC
WebRTCWebRTC
WebRTC
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App Development
 
OSCC20 SceneGate, EchoVoice, and IMABox
OSCC20 SceneGate, EchoVoice, and IMABox OSCC20 SceneGate, EchoVoice, and IMABox
OSCC20 SceneGate, EchoVoice, and IMABox
 
Hierarchy Viewer Internals
Hierarchy Viewer InternalsHierarchy Viewer Internals
Hierarchy Viewer Internals
 
Introduction to android applications stu
Introduction to android applications stuIntroduction to android applications stu
Introduction to android applications stu
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
 
Android OS PPT
Android OS PPTAndroid OS PPT
Android OS PPT
 
RICOH THETA x IoT Developers Contest : Cloud API Seminar
 RICOH THETA x IoT Developers Contest : Cloud API Seminar RICOH THETA x IoT Developers Contest : Cloud API Seminar
RICOH THETA x IoT Developers Contest : Cloud API Seminar
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world
 

Mehr von Droidcon Spain

Concurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaConcurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaDroidcon Spain
 
Android: más allÁpp – inMedia Studio
Android: más allÁpp – inMedia StudioAndroid: más allÁpp – inMedia Studio
Android: más allÁpp – inMedia StudioDroidcon Spain
 
Me enamoré de un robot - Tecnilogica
Me enamoré de un robot - TecnilogicaMe enamoré de un robot - Tecnilogica
Me enamoré de un robot - TecnilogicaDroidcon Spain
 
Apps and cars - Applicantes
Apps and cars - ApplicantesApps and cars - Applicantes
Apps and cars - ApplicantesDroidcon Spain
 
Accesibilidad en apps móviles - Codefactory
Accesibilidad en apps móviles - CodefactoryAccesibilidad en apps móviles - Codefactory
Accesibilidad en apps móviles - CodefactoryDroidcon Spain
 
Visión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidVisión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidDroidcon Spain
 
Desvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDesvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDroidcon Spain
 
Monetize your idea! - Pay Pal
Monetize your idea! - Pay PalMonetize your idea! - Pay Pal
Monetize your idea! - Pay PalDroidcon Spain
 
Desarrollo ágil de apps con Genexus
Desarrollo ágil de apps con GenexusDesarrollo ágil de apps con Genexus
Desarrollo ágil de apps con GenexusDroidcon Spain
 
Metodología Scrum para el desarrollo de apps
Metodología Scrum para el desarrollo de appsMetodología Scrum para el desarrollo de apps
Metodología Scrum para el desarrollo de appsDroidcon Spain
 
Introducción Tu Go and Open Tok - Telefónica i+d
Introducción Tu Go and Open Tok - Telefónica i+d Introducción Tu Go and Open Tok - Telefónica i+d
Introducción Tu Go and Open Tok - Telefónica i+d Droidcon Spain
 
Ui testing with espresso
Ui testing with espressoUi testing with espresso
Ui testing with espressoDroidcon Spain
 
Geolocalización en Android
Geolocalización en Android Geolocalización en Android
Geolocalización en Android Droidcon Spain
 
Cordova 3, apps para android
Cordova 3, apps para androidCordova 3, apps para android
Cordova 3, apps para androidDroidcon Spain
 
Programación Reactiva en Android
Programación Reactiva en AndroidProgramación Reactiva en Android
Programación Reactiva en AndroidDroidcon Spain
 
Requisitos de Accesibilidad
Requisitos de AccesibilidadRequisitos de Accesibilidad
Requisitos de AccesibilidadDroidcon Spain
 
Presentación Accesibilidad ASPACENET
Presentación Accesibilidad ASPACENETPresentación Accesibilidad ASPACENET
Presentación Accesibilidad ASPACENETDroidcon Spain
 
Droid con Aspace-Cross
Droid con Aspace-CrossDroid con Aspace-Cross
Droid con Aspace-CrossDroidcon Spain
 
Android UI design trends
Android UI design trendsAndroid UI design trends
Android UI design trendsDroidcon Spain
 

Mehr von Droidcon Spain (20)

Concurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaConcurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco Araña
 
Android: más allÁpp – inMedia Studio
Android: más allÁpp – inMedia StudioAndroid: más allÁpp – inMedia Studio
Android: más allÁpp – inMedia Studio
 
Me enamoré de un robot - Tecnilogica
Me enamoré de un robot - TecnilogicaMe enamoré de un robot - Tecnilogica
Me enamoré de un robot - Tecnilogica
 
Apps and cars - Applicantes
Apps and cars - ApplicantesApps and cars - Applicantes
Apps and cars - Applicantes
 
Accesibilidad en apps móviles - Codefactory
Accesibilidad en apps móviles - CodefactoryAccesibilidad en apps móviles - Codefactory
Accesibilidad en apps móviles - Codefactory
 
Visión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidVisión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y Android
 
Desvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDesvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon Spain
 
Monetize your idea! - Pay Pal
Monetize your idea! - Pay PalMonetize your idea! - Pay Pal
Monetize your idea! - Pay Pal
 
Desarrollo ágil de apps con Genexus
Desarrollo ágil de apps con GenexusDesarrollo ágil de apps con Genexus
Desarrollo ágil de apps con Genexus
 
Metodología Scrum para el desarrollo de apps
Metodología Scrum para el desarrollo de appsMetodología Scrum para el desarrollo de apps
Metodología Scrum para el desarrollo de apps
 
Introducción Tu Go and Open Tok - Telefónica i+d
Introducción Tu Go and Open Tok - Telefónica i+d Introducción Tu Go and Open Tok - Telefónica i+d
Introducción Tu Go and Open Tok - Telefónica i+d
 
Tu go - Droidcon
Tu go - DroidconTu go - Droidcon
Tu go - Droidcon
 
Ui testing with espresso
Ui testing with espressoUi testing with espresso
Ui testing with espresso
 
Geolocalización en Android
Geolocalización en Android Geolocalización en Android
Geolocalización en Android
 
Cordova 3, apps para android
Cordova 3, apps para androidCordova 3, apps para android
Cordova 3, apps para android
 
Programación Reactiva en Android
Programación Reactiva en AndroidProgramación Reactiva en Android
Programación Reactiva en Android
 
Requisitos de Accesibilidad
Requisitos de AccesibilidadRequisitos de Accesibilidad
Requisitos de Accesibilidad
 
Presentación Accesibilidad ASPACENET
Presentación Accesibilidad ASPACENETPresentación Accesibilidad ASPACENET
Presentación Accesibilidad ASPACENET
 
Droid con Aspace-Cross
Droid con Aspace-CrossDroid con Aspace-Cross
Droid con Aspace-Cross
 
Android UI design trends
Android UI design trendsAndroid UI design trends
Android UI design trends
 

Kürzlich hochgeladen

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Open tok Android sdk - Droidcon

  • 1. OpenTok 2.0: Android SDK Marina Serrano Montes marinas@tokbox.com
  • 2. Contents 1. What is OpenTok ? 2. What is WebRTC ? 3. Why using OpenTok ? 4. OpenTokRTC DEMO 5. SDK for Android platform 6. API for Android SDK 7. New features for Android SDK 8. Others APIs
  • 3. 1. What is OpenTok? OpenTok is a OTT platform. It delivers all the global infrastructure, scalability, and features the developers need to add WebRTC to their website or mobile application.
  • 4. 2. What is WebRTC? - A powerful RTC open source standard. It enables real time communication through a common set of APIs. -WebRTC defines a way to implement technologies like video chat in a way that is interoperable with other clients. - It is available for different browsers (plugin is not required) and for native iOS and Android platforms. - WebRTC vs Flash: better video quality faster connections time reduced audio/video latency - Emerging issue: Video Codec debate: VP8 or H.264?
  • 5. 3. Why using OpenTok? Infrastructure, APIs and tools to unlock the potential of WebRTC Fewer lines of code Native SDK for mobiles Experience optimization Archiving & Playback Robust signaling Web SDK Interoperability Global infrastructure Firewall transversal support Intelligent quality controls Multi-party calls High performance
  • 6. 3. Why using OpenTok? Some customer success stories
  • 8. 5. SDK for Android platform Overall architecture
  • 9. 6. API for Android SDK Session Stream Publisher Connection Subscriber OpenTokException
  • 10. 6. API for Android SDK Session Represents an OpenTok session in which the client is participating Tasks: Initializing and connect to a session: public Session (Context context, String sessionId, Listener listener); public void connect(final String apiKey, final String token); public void disconnect(); Getting information about the session: public Connection getConnection();
  • 11. 6. API for Android SDK Publishing audio-video stream to a session: public void publish(Publisher publisher); public void unpublish(Publisher publisher); Subscribing audio-video stream: public void subscribe(Subscriber subscriber); public void unsubscribe(Subscriber subscriber);
  • 12. 6. API for Android SDK Callbacks: public void onSessionConnected(Session session); public void onSessionDisconnected(Session session); public void onSessionReceivedStream(Session session, Stream stream); public void onSessionDroppedStream(Session session, Stream stream); public void onSessionCreatedConnection(Session session, Connection connection); public void onSessionDroppedConnection(Session session, Connection connection); public void onSessionError(Session session, OpentokError error);
  • 13. 6. API for Android SDK Publisher Captures an audio-video stream from the device’s microphone and camera. This stream will be published to an OpenTok session. Tasks: Initializing a publisher: public Publisher (Context context, Listener listener, String name) ; Getting information about the publisher: public boolean getPublishVideo(); public boolean getPublishAudio(); public Session getSession(); public String getStreamId(); public int getCameraId();
  • 14. 6. API for Android SDK Controlling audio and video output for a publisher: public void setPublishVideo(boolean publishVideo); public void setPublishAudio(boolean publishAudio); Setting publisher device configuration: public void setCameraId(int cameraId); public void swapCamera(); Callbacks: public public public public void void void void onPublisherStreamingStarted(); onPublisherStreamingStopped(); onPublisherChangedCamera(int newCameraId); onPublisherException(OpentokException exception);
  • 15. 6. API for Android SDK Subscriber Used to consume an audio-video stream in the OpenTok session. Tasks: Initializing a subscriber: public Subscriber (Context context , Stream stream ) Getting information about the publisher: public boolean getSubscriberToVideo(); public boolean getSubscriberToAudio(); public Session getSession(); public String getStream(); public View getView();
  • 16. 6. API for Android SDK Controlling audio and video playback: public void setSubscribeToAudio(boolean subscribeToAudio); public void setSubscribeToVideo(boolean subscribeToVideo); Callbacks: public void onSubscriberConnected(Subscriber subscriber); public void onSubscriberVideoDisabled(Subscriber subscriber); public void onSubscriberException(Subscriber subscriber, OpentokException exception);
  • 17. 6. API for Android SDK Stream Represents a stream of multimedia, which may contain video and/or audio data. Tasks: Getting basic information about the stream: public String getStreamId(); public Date getCreationTime(); public Connection getConnection(); public String getName(); Getting audio and video information about the stream: public int getVideoWidth(); public boolean hasVideo(); public int getVideoHeight(); public boolean hasAudio();
  • 18. 6. API for Android SDK Connection Represents a connection between a client and an OpenTok session. Tasks: Getting information about the connection: public String getConnectionId(); public Date getCreationTime(); public String getData();
  • 19. 6. API for Android SDK OpenTokException Defines errors thrown by the OpenTok Android SDK. Basic errors categories: Network error -- unable to connect to the session: check the network connection. Authentication error -- unable to connect: an invalid API key or token was provided. Internal error
  • 20. 7. New features for Android SDK For next Android SDK release…. Signaling: Sends a signal to each client or specified clients in the session. public boolean sendSignal(String type, String data); public boolean sendSignal(String type, String data, ArrayList<Connection> connections); Callback: void onSignal(Session session, final String type, final String data, String connectionId, long creationTimeConnection); Eg: mSession.sendSignal("chat", "hello");
  • 21. 7. New features for Android SDK and... Expose video driver & render: Video comes in and out the SDK. - Developers can use the video driver and video render by default in the SDK. or - Developers can implement their own video driver. Some uses cases: * Don't use the camera of the device by default.... * sending a picture as captured video… * adding funny effects to the video….