23

Click here to load reader

Open tok Android sdk - Droidcon

Embed Size (px)

DESCRIPTION

Analizaremos brevemente el crecimiento del acceso móvil a Internet y la relevancia que Android tiene actualmente para los servicios que lanza Telefónica, para dar paso después a una charla técnica sobre dos de nuestros desarrollos. TU Go convierte tu número de teléfono en una aplicación, permitiéndote realizar y recibir llamadas desde donde mejor te convenga en cada momento; analizaremos detalles de la implementación en Android. OpenTok es una plataforma que facilita la integración de WebRTC en tu sitio web y tus aplicaciones móviles; entraremos en más detalle con la implementación para Android.

Citation preview

Page 1: Open tok Android sdk - Droidcon

OpenTok 2.0:Android SDK

Marina Serrano [email protected]

Page 2: Open tok Android sdk - Droidcon

Contents1. 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

Page 3: Open tok Android sdk - Droidcon

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.

Page 4: Open tok Android sdk - Droidcon

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?

Page 5: Open tok Android sdk - Droidcon

3. Why using OpenTok?Infrastructure, APIs and tools to unlock the potential of WebRTC

Fewer lines of code

Robust signaling

Native SDK for mobiles

Firewall transversal support

Web SDK

Experience optimization

Intelligent quality controls

Interoperability

Multi-party calls

Archiving & Playback

Global infrastructure

High performance

Page 6: Open tok Android sdk - Droidcon

3. Why using OpenTok?Some customer success stories

Page 7: Open tok Android sdk - Droidcon

4. OpenTokRTC DEMO

Page 8: Open tok Android sdk - Droidcon

5. SDK for Android platform

Overall architecture

Page 9: Open tok Android sdk - Droidcon

6. API for Android SDK

Session

Publisher

Subscriber

Stream

Connection

OpenTokException

Page 10: Open tok Android sdk - Droidcon

6. API for Android SDK 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();

Session

Page 11: Open tok Android sdk - Droidcon

6. API for Android SDKPublishing 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);

Page 12: Open tok Android sdk - Droidcon

6. API for Android SDKCallbacks:

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);

Endpoint SDKsEndpoint SDKs

Page 13: Open tok Android sdk - Droidcon

6. API for Android SDK 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();

Publisher

Page 14: Open tok Android sdk - Droidcon

6. API for Android SDKControlling 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 void onPublisherStreamingStarted();public void onPublisherStreamingStopped();public void onPublisherChangedCamera(int newCameraId);public void onPublisherException(OpentokException exception);

Page 15: Open tok Android sdk - Droidcon

6. API for Android SDK 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();

Subscriber

Page 16: Open tok Android sdk - Droidcon

6. API for Android SDKControlling 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);

Page 17: Open tok Android sdk - Droidcon

6. API for Android SDK 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();

Stream

Page 18: Open tok Android sdk - Droidcon

6. API for Android SDK 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();

Connection

Page 19: Open tok Android sdk - Droidcon

6. API for Android SDK 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

OpenTokException

Page 20: Open tok Android sdk - Droidcon

7. New features for Android SDKFor 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");

Page 21: Open tok Android sdk - Droidcon

7. New features for Android SDKand...

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….

Page 22: Open tok Android sdk - Droidcon

8. Others APIs

Page 23: Open tok Android sdk - Droidcon

Thank you very much