Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Flashphoner.createSession(); code

Code Block
languagejsjava
themeRDark
 String url;
     final String streamName;
     try {
         URI u = new URI(mWcsUrlView.getText().toString());
         url = u.getScheme() + "://" + u.getHost() + ":" + u.getPort();
         streamName = u.getPath().replaceAll("/", "");
     } catch (URISyntaxException e) {
         mStatusView.setText("Wrong uri");
         return;
     }

     /**
      * The options for connection session are set.
      * WCS server URL is passed when SessionOptions object is created.
      * SurfaceViewRenderer to be used to display video from the camera is set with method SessionOptions.setLocalRenderer().
      * SurfaceViewRenderer to be used to display preview stream video received from the server is set with method SessionOptions.setRemoteRenderer().
      */
     SessionOptions sessionOptions = new SessionOptions(url);
     sessionOptions.setLocalRenderer(localRender);
     sessionOptions.setRemoteRenderer(remoteRender);

     /**
      * Session for connection to WCS server is created with method createSession().
      */
     session = Flashphoner.createSession(sessionOptions);

...

ConnectionStatusEvent ESTABLISHED code

Code Block
languagejsjava
themeRDark
     public void onConnected(final Connection connection) {
         runOnUiThread(new Runnable() {
             @Override
             public void run() {
                 mStartButton.setText(R.string.action_stop);
                 mStartButton.setTag(R.string.action_stop);
                 mStartButton.setEnabled(true);
                 mStatusView.setText(connection.getStatus());

                 /**
                  * The options for the stream to publish are set.
                  * The stream name is passed when StreamOptions object is created.
                  */
                 StreamOptions streamOptions = new StreamOptions(streamName);

                 /**
                  * Stream is created with method Session.createStream().
                  */
                 publishStream = session.createStream(streamOptions);

...

stream.publish(); code

Code Block
languagejsjava
themeRDark
    @Override
    public void onRequestPermissionsResult(int requestCode,
                                           @NonNull String permissions[], @NonNull int[] grantResults) {
        switch (requestCode) {
            case PUBLISH_REQUEST_CODE: {
                if (grantResults.length == 0 ||
                        grantResults[0] != PackageManager.PERMISSION_GRANTED ||
                        grantResults[1] != PackageManager.PERMISSION_GRANTED) {
                    mStartButton.setEnabled(false);
                    session.disconnect();
                    Log.i(TAG, "Permission has been denied by user");
                } else {
                    /**
                     * Method Stream.publish() is called to publish stream.
                     */
                    publishStream.publish();
                    Log.i(TAG, "Permission has been granted by user");
                }
            }
        }
    }

...

StreamStatusEvent, status PUBLISHING code

Code Block
languagejsjava
themeRDark
     publishStream.on(new StreamStatusEvent() {
         @Override
         public void onStreamStatus(final Stream stream, final StreamStatus streamStatus) {
             runOnUiThread(new Runnable() {
                 @Override
                 public void run() {
                     if (StreamStatus.PUBLISHING.equals(streamStatus)) {

                         /**
                          * The options for the stream to play are set.
                          * The stream name is passed when StreamOptions object is created.
                          */
                         StreamOptions streamOptions = new StreamOptions(streamName);

                         /**
                          * Stream is created with method Session.createStream().
                          */
                         playStream = session.createStream(streamOptions);

...

session.disconnect(); code

Code Block
languagejsjava
themeRDark
                } else {
                    mStartButton.setEnabled(false);

                    /**
                     * Connection to WCS server is closed with method Session.disconnect().
                     */
                    session.disconnect();
                }

...

ConnectionStatusEvent DISCONNECTED code

Code Block
languagejsjava
themeRDark
                        @Override
                        public void onDisconnection(final Connection connection) {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    mStartButton.setText(R.string.action_start);
                                    mStartButton.setTag(R.string.action_start);
                                    mStartButton.setEnabled(true);
                                    mStatusView.setText(connection.getStatus());
                                }
                            });
                        }