The Jitsi Meet Android SDK provides the same user experience as the Jitsi Meet app,in a customizable way which you can embed in your apps.
Sample applications using the SDK
If you want to see how easy integrating the Jitsi Meet SDK into a native application is, take a look at thesample applications repository.
Discussion related to the Meet UI, Meet features, Meet use cases, the meet.jit.si app, and basic usage of Jitsi products intended for end users. These discussions will tend to be less technical than those in Install & Config and Developers. Please create an issue in the appropriate github repo. Product Requests and Ideas. Jitsi is a set of open-source projects that allows you to easily build and deploy secure videoconferencing solutions. We are best known for our Jitsi Meet video conferencing platform, meet.jit.si where we host a Jitsi Meet instance that the community can use for totally free video conferences, and the Jitsi Videobridge that powers all of our multi-party video capabilities.
The content is divided in 3 main areas: User guide: Designed to help users of the service, to better understand all the available features and how to use them. Developer guide: Designed to help developers who want to either integrate the Jitsi Meet API / SDK in their products or want to improve Jitsi Meet itself by developing new features or fixing bugs. Jitsi Meet is an open source JavaScript WebRTC application used primarily for video conferencing. In addition to audio and video, screen sharing is available, and new members can be invited via a generated link. The interface is accessible via web browser or with a mobile app.
Build your own, or use a pre-build SDK artifacts/binaries
Jitsi conveniently provides a pre-build SDK artifacts/binaries in its Maven repository. When you do not require anymodification to the SDK itself or any of its dependencies, it's suggested to use the pre-build SDK. This avoids thecomplexity of building and installing your own SDK artifacts/binaries.
Use pre-build SDK artifacts/binaries
In your project, add the Maven repositoryhttps://github.com/jitsi/jitsi-maven-repository/raw/master/releases
and thedependency org.jitsi.react:jitsi-meet-sdk
into your build.gradle
files.
The repository typically goes into the build.gradle
file in the root of your project:
Dependency definitions belong in the individual module build.gradle
files:
Build and use your own SDK artifacts/binaries
Show building instructionsStart by making sure that your development environment is set up correctly.
A note on dependencies: Apart from the SDK, Jitsi also publishes a binary Maven artifact for some of the SDK dependencies (that are not otherwise publicly available) to the Jitsi Maven repository. When you're planning to use a SDK that is built from source, you'll likely use a version of the source code that is newer (or at least different) than the version of the source that was used to create the binary SDK artifact. As a consequence, the dependencies that your project will need, might also be different from those that are published in the Jitsi Maven repository. This might lead to build problems, caused by dependencies that are unavailable.
If you want to use a SDK that is built from source, you will likely benefit from composing a local Maven repository that contains these dependencies. The text below describes how you create a repository that includes both the SDK as well as these dependencies. For illustration purposes, we'll define the location of this local Maven repository as /tmp/repo
In source code form, the Android SDK dependencies are locked/pinned by package.json and package-lock.json of the Jitsi Meet project. To obtain the data, execute NPM in the jitsi-meet project directory:
This will pull in the dependencies in either binary format, or in source code format, somewhere under /node_modules/
Third-party React Native modules, which Jitsi Meet SDK for Android depends on, are download by NPM in source codeor binary form. These need to be assembled into Maven artifacts, and then published to your local Maven repository.A script is provided to facilitate this. From the root of the jitsi-meet project repository, run:
This will build and publish the SDK, and all of its dependencies to the specified Maven repository (/tmp/repo
) inthis example.
You're now ready to use the artifacts. In your project, add the Maven repository that you used above (/tmp/repo
) into your top-level build.gradle
file:
You can use your local repository to replace the Jitsi repository (maven { url 'https://github.com/jitsi/jitsi-maven-repository/raw/master/releases' }
) when you published all subprojects. If you didn't do that, you'll have to add both repositories. Make sure your local repository is listed first!
Then, define the dependency org.jitsi.react:jitsi-meet-sdk
into the build.gradle
file of your module:
Note that there should not be a need to explicitly add the other dependencies, as they will be pulled in as transitivedependencies of jitsi-meet-sdk
.
Using the API
Jitsi Meet SDK is an Android library which embodies the whole Jitsi Meetexperience and makes it reusable by third-party apps.
First, add Java 1.8 compatibility support to your project by adding thefollowing lines into your build.gradle
file:
To get started, extends your android.app.Activity
fromorg.jitsi.meet.sdk.JitsiMeetActivity
:
Alternatively, you can use the org.jitsi.meet.sdk.JitsiMeetView
class whichextends android.view.View
.
Note that this should only be needed when JitsiMeetActivity
cannot be used forsome reason. Extending JitsiMeetView
requires manual wiring of the view tothe activity, using a lot of boilerplate code. Using the Activity instead of theView is strongly recommended.
JitsiMeetActivity
This class encapsulates a high level API in the form of an Android FragmentActivity
which displays a single JitsiMeetView
. You can pass a URL as a ACTION_VIEW
on the Intent when starting it and it will join the conference, and will beautomatically terminated (finish() will be called on the activity) when theconference ends or fails.
JitsiMeetView
The JitsiMeetView
class is the core of Jitsi Meet SDK. It's designed todisplay a Jitsi Meet conference (or a welcome page).
join(options)
Joins the conference specified by the given JitsiMeetConferenceOptions
.
leave()
Leaves the currently active conference. If the welcome page is enabled it willgo back to it, otherwise a black window will be shown.
dispose()
Releases all resources associated with this view. This method MUST be calledwhen the Activity holding this view is going to be destroyed, usually in theonDestroy()
method.
getListener()
Returns the JitsiMeetViewListener
instance attached to the view.
setListener(listener)
Sets the given listener (class implementing the JitsiMeetViewListener
interface) on the view.
JitsiMeetConferenceOptions
This object encapsulates all the options that can be tweaked when joininga conference.
Example:
See the JitsiMeetConferenceOptions
implementation for all available options.
JitsiMeetActivityDelegate
This class handles the interaction between JitsiMeetView
and its enclosingActivity
. Generally this shouldn't be consumed by users, because they'd beusing JitsiMeetActivity
instead, which is already completely integrated.
All its methods are static.
onActivityResult(..)
Helper method to handle results of auxiliary activities launched by the SDK.Should be called from the activity method of the same name.
onBackPressed()
Helper method which should be called from the activity's onBackPressed
method.If this function returns true
, it means the action was handled and thus noextra processing is required; otherwise the app should call the parent'sonBackPressed
method.
onHostDestroy(..)
Helper method which should be called from the activity's onDestroy
method.
onHostResume(..)
Helper method which should be called from the activity's onResume
or onStop
method.
onHostStop(..)
Helper method which should be called from the activity's onSstop
method.
onNewIntent(..)
Helper method for integrating the deep linking functionality. If your app'sactivity is launched in 'singleTask' mode this method should be called from theactivity's onNewIntent
method.
onRequestPermissionsResult(..)
Helper method to handle permission requests inside the SDK. It should be calledfrom the activity method of the same name.
onUserLeaveHint()
Helper method for integrating automatic Picture-in-Picture. It should be calledfrom the activity's onUserLeaveHint
method.
This is a static method.
JitsiMeetViewListener (deprecated - use Listening for broadcasted events instead)
JitsiMeetViewListener
provides an interface apps can implement to listen tothe state of the Jitsi Meet conference displayed in a JitsiMeetView
.
onConferenceJoined
Called when a conference was joined.
The data
Map
contains a 'url' key with the conference URL.
onConferenceTerminated
Called when a conference was terminated either by user choice or due to afailure.
The data
Map
contains an 'error' key with the error and a 'url' keywith the conference URL. If the conference finished gracefully no error
key will be present.
onConferenceWillJoin
Called before a conference is joined.
The data
Map
contains a 'url' key with the conference URL.
Listening for broadcasted events
The SDK broadcasts several events that the users can listen for. Universal time converter.
Please see JitsiMeetActivity
, which registers for all the events and can serve as an example.
Supported events
CONFERENCE_JOINED
Broadcasted when a conference was joined.The data
HashMap contains a url
key with the conference URL.
CONFERENCE_TERMINATED
Broadcasted when the active conference ends, be it because of user choice orbecause of a failure.The data
HashMap contains an error
key with the error and a url
keywith the conference URL. If the conference finished gracefully no error
key will be present.
CONFERENCE_WILL_JOIN
Broadcasted before a conference is joined.The data
HashMap contains a url
key with the conference URL.
AUDIO_MUTED_CHANGED
Broadcasted when audioMuted state changed.The data
HashMap contains a muted
key with state of the audioMuted for the localParticipant.
PARTICIPANT_JOINED
Broadcasted when a participant has joined the conference.The data
HashMap contains information of the participant that has joined.Depending of whether the participant is the local one or not, some of them arepresent/missing.isLocalemailnameparticipantId
PARTICIPANT_LEFT
Broadcasted when a participant has joined the conference.The data
HashMap contains information of the participant that has left.Depending of whether the participant is the local one or not, some of them arepresent/missing.isLocalemailnameparticipantId
ENDPOINT_TEXT_MESSAGE_RECEIVED
Broadcasted when an endpoint text message is received.The data
HashMap contains a senderId
key with the participantId of the sender and a message
key with the content.
Broadcasting Actions
The SDK listens for broadcasted actions from the users and reacts accordingly.
The intents can be build manually (as shown above) or through the methods in BroadcastIntentHelper
.
Please see JitsiMeetOngoingConferenceService
for more examples of sending actions.
Supported actions
SET_AUDIO_MUTED
Sets the state of the localParticipant audio muted according to the muted
parameter.Expects a muted
key on the intent extra with a boolean value.
HANG_UP
The localParticipant leaves the current conference.Does not expect any extra value.
SEND_ENDPOINT_TEXT_MESSAGE
Sends a messaage via the data channel to one particular participant or to all of them.Expects a to
key on the intent extra with the id of the participant to which the messaageis meant and a message
key with a string value, the actual content of the message.If the to
key is not present or it's value is empty, the message will be sentto all the participants in the conference.
In order to get the participantId, the PARTICIPANT_JOINED
event should be listened for,which data
includes the id and this should be stored somehow.
ProGuard rules
When using the SDK on a project some proguard rules have to be added in orderto avoid necessary code being stripped. Add the following to your project'srules file: https://github.com/jitsi/jitsi-meet/blob/master/android/app/proguard-rules.pro
Picture-in-Picture
JitsiMeetView
will automatically adjust its UI when presented in aPicture-in-Picture style scenario, in a rectangle too small to accommodate its'full' UI.
Dropbox integration
To setup the Dropbox integration, follow these steps:
- Add the following to the app's AndroidManifest.xml and change
toyour Dropbox app key:
- Add the following to the app's strings.xml and change
to yourDropbox app key:
Jitsi Meet
https://jitsi.org/jitsi-meet/
Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
More secure, more flexible, and completely free video conferencing.
Go ahead, video chat with the whole team. In fact, invite everyone you know. Jitsi Meet is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.
What else can you do with Jitsi Meet?Share your desktop, presentations, and moreInvite users to a conference via a simple, custom URLEdit documents together using EtherpadPick fun meeting URLs for every meetingTrade messages and emojis while you video conference, with integrated chat.
Download
How to Study for Finals & Midterms in High School (and beat every exam) by Rhonda Almaour Updated May 1, 2020. Need help studying in high school? Need guidance for college? Enroll in our college planning boot camp. The semester, or perhaps the school year, is. Midterms high school.
Categories
Jitsi Meet Github Android
Licensing
Verified by
Notes
Craig Topham
16 April 2020
Jitsi Website
Craig Topham
16 April 2020
Leaders and contributors
Resources and communication
Audience | Resource type | URI |
---|---|---|
Community | General | https://community.jitsi.org/ |
Software prerequisites
Jitist Meet Try
Jitsi Meet Electron Github
Jitsi Meet Android Github
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page 'GNU Free Documentation License'.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.