Versions Compared

Key

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

В сборке Android SDK 1.0.1.81 добавлена возможность получать при проигрывании потока события от публикующей стороны. Таким образом можно определить, заглушено ли аудио или видео в потоке: если клиент использует функцию muteAduio() или muteVideo(), подписчикам отправляется специальное событие. Чтобы получить это событие при проигрывании потока, необходимо переопределить функцию Stream.onStreamEvent() и проверять значение, возвращаемое методом StreamEvent.getType()

code

Code Block
languagejava
themeRDark
                @Override
                public void onStreamEvent(StreamEvent streamEvent) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            switch (streamEvent.getType()) {
                                case audioMuted: mAudioMuteStatus.setText(getString(R.string.audio_mute_status)+"true"); break;
                                case audioUnmuted: mAudioMuteStatus.setText(getString(R.string.audio_mute_status)+"false"); break;
                                case videoMuted: mVideoMuteStatus.setText(getString(R.string.video_mute_status)+"true"); break;
                                case videoUnmuted: mVideoMuteStatus.setText(getString(R.string.video_mute_status)+"false");
                            }
                        }
                    });
                }

Определение состояния входящего потока микшера при проигрывании выходного потока

В сборке Android SDK 1.0.1.82 добавлена возможность определения состояния входящего потока микшера, при проигрывании микшированного потока. В этом случае также необходимо определить функцию Stream.onStreamEvent(), в которой проверить элемент StreamEvent.payload, при помощи соответствующего метода и, если он не пуст, получить имя потока, для которого пришло событие

code

Code Block
languagejava
themeRDark
                @Override
                public void onStreamEvent(StreamEvent streamEvent) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            if (streamEvent.getPayload() != null) {
                                mMutedName.setText(getString(R.string.muted_name) + streamEvent.getPayload().getStreamName());
                            }
                            switch (streamEvent.getType()) {
                                case audioMuted: mAudioMuteStatus.setText(getString(R.string.audio_mute_status)+"true"); break;
                                case audioUnmuted: mAudioMuteStatus.setText(getString(R.string.audio_mute_status)+"false"); break;
                                case videoMuted: mVideoMuteStatus.setText(getString(R.string.video_mute_status)+"true"); break;
                                case videoUnmuted: mVideoMuteStatus.setText(getString(R.string.video_mute_status)+"false");
                            }
                        }
                    });
                }