Skip to content

Instantly share code, notes, and snippets.

@jchang419
Created December 20, 2016 20:58
Show Gist options
  • Select an option

  • Save jchang419/86d368af84aa42037b9581104f806bd4 to your computer and use it in GitHub Desktop.

Select an option

Save jchang419/86d368af84aa42037b9581104f806bd4 to your computer and use it in GitHub Desktop.

Revisions

  1. jchang419 created this gist Dec 20, 2016.
    157 changes: 157 additions & 0 deletions test.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,157 @@
    package com.example.jchang.helloworld;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.LinearLayout;
    import android.util.Log;

    import com.opentok.android.Publisher;
    import com.opentok.android.PublisherKit;
    import com.opentok.android.Session;
    import com.opentok.android.Stream;
    import com.opentok.android.Subscriber;
    import com.opentok.android.SubscriberKit;
    import com.opentok.android.OpentokError;

    import android.speech.tts.TextToSpeech;

    public class MainActivity extends AppCompatActivity implements Session.SessionListener,
    Publisher.PublisherListener, Subscriber.SubscriberListener,
    Subscriber.VideoListener {

    public static final String API_KEY = "";
    public static final String SESSION_ID = "";
    public static final String TOKEN = "";
    public static final String LOGTAG = MainActivity.class.getName();
    private TextToSpeech textToSpeech;

    private LinearLayout publisherView;
    private LinearLayout.LayoutParams publisherParams;
    private LinearLayout subscriberView;
    private LinearLayout.LayoutParams subscriberParams;

    private class GixoSession extends Session {
    private GixoSession() {
    super(getBaseContext(), API_KEY, SESSION_ID);
    }

    @Override
    public void onConnected() {
    try {
    Thread.sleep(2500);
    Publisher publisher = new Publisher.Builder(getBaseContext()).videoTrack(false).audioTrack(true).build();
    publish(publisher);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    textToSpeech = new TextToSpeech(getBaseContext(), new TextToSpeech.OnInitListener() {
    @Override
    public void onInit(int status) {
    if(status == TextToSpeech.SUCCESS) {
    textToSpeech.speak("one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen", TextToSpeech.QUEUE_FLUSH, null);
    }
    }
    });

    GixoSession session = new GixoSession();
    session.connect(TOKEN);

    }

    @Override
    public void onConnected(Session session) {
    Log.i(LOGTAG, "call to onConnected of the SessionListener");
    Publisher publisher = new Publisher(MainActivity.this);
    publisher.setPublisherListener(this);
    publisherView.addView(publisher.getView(), publisherParams);
    session.publish(publisher);
    }

    @Override
    public void onStreamReceived(Session session, Stream stream) {
    Log.i(LOGTAG, "call to onStreamReceived");
    Subscriber subscriber = new Subscriber(MainActivity.this, stream);
    subscriber.setVideoListener(this);
    session.subscribe(subscriber);
    subscriberView.addView(subscriber.getView(), subscriberParams);
    }

    @Override
    public void onDisconnected(Session session) {
    Log.i(LOGTAG, "call to onDisconnected of the SessionListener");
    }

    @Override
    public void onStreamDropped(Session session, Stream stream) {
    Log.i(LOGTAG, "call to onStreamDropped of the SessionListener");
    }

    @Override
    public void onError(Session session, OpentokError error) {
    Log.i(LOGTAG, "SessionListener error: " + error.getMessage());
    }

    @Override
    public void onStreamCreated(PublisherKit publisher, Stream stream) {
    Log.i(LOGTAG, "call to onStreamCreated of the PublisherListener");
    }

    @Override
    public void onStreamDestroyed(PublisherKit publisher, Stream stream) {
    Log.i(LOGTAG, "call to onStreamDestroyed of the PublisherListener");
    }

    @Override
    public void onError(PublisherKit publisher, OpentokError error) {
    Log.i(LOGTAG, "PublisherListener error: " + error.getMessage());
    }

    @Override
    public void onConnected(SubscriberKit subscriber) {
    Log.i(LOGTAG, "call to onConnected of the SubscriberListener");
    }

    @Override
    public void onDisconnected(SubscriberKit subscriber) {
    Log.i(LOGTAG, "call to onDisconnected of the SubscriberListener");
    }

    @Override
    public void onError(SubscriberKit subscriber, OpentokError error) {
    Log.i(LOGTAG, "SubscriberListener error: " + error.getMessage());
    }

    @Override
    public void onVideoDataReceived(SubscriberKit subscriber) {
    Log.i(LOGTAG, "call to onVideoDataReceived of the VideoListener");
    }

    @Override
    public void onVideoDisabled(SubscriberKit subscriber, java.lang.String reason) {
    Log.i(LOGTAG, "call to onVideoDisabled of the VideoListener");
    }

    @Override
    public void onVideoEnabled(SubscriberKit subscriber, java.lang.String reason) {
    Log.i(LOGTAG, "call to onVideoEnabled of the VideoListener");
    }

    @Override
    public void onVideoDisableWarning(SubscriberKit subscriber) {
    Log.i(LOGTAG, "call to onVideoDisableWarning of the VideoListener");
    }

    @Override
    public void onVideoDisableWarningLifted(SubscriberKit subscriber) {
    Log.i(LOGTAG, "call to onVideoDisableWarning of the VideoListener");
    }

    }