Java

シグナルを送る

セッションに接続し、セッション・オブジェクトを得たので、シグナルを送信することができます。シグナルとは、セッションで送信される任意のテキストやデータのことで、特定のクライアントや接続されているすべてのクライアントに送信することができます。シグナルについて詳しくは Vonage ビデオシグナリング開発者ガイド.このチュートリアルでは、テキストを送信します。

  1. という新しいクラスを作る。 SignalMessage このコードで:
public class SignalMessage {

    private String messageText;
    private Boolean remote;

    public SignalMessage(String messageText) {
        this.messageText = messageText;
        this.remote = false;
    }

    public SignalMessage(String messageText, Boolean remote) {
        this.messageText = messageText;
        this.remote = remote;
    }

    public String getMessageText() {
        return this.messageText;
    }

    public Boolean isRemote() {
        return this.remote;
    }
}

このクラスはシグナルをUIに表示するために使用される。

  1. 以下のコードをコピーし、既存のコードの下に貼り付けます。 MainActivity クラスの後に onCreate 関数である:
private void sendMessage() {
  Log.d(TAG, "Send Message");
  String data = messageEditTextView.getText().toString();
  session.sendSignal("msg", data);

  SignalMessage message = new SignalMessage(data);
  messageHistory.add(message);

  messageEditTextView.setText("");
}

このコードでは、UIから呼び出される関数を追加している。 session.signal が呼び出され、テキストがシグナルとして送信される。 session.signal は、シグナルのタイプといくつかのデータを取ります。タイプはオプションですが、アプリ内でシグナルのタイプを区別するために使用できます。Signalが正常に送信されると、UIが使用しているメッセージの配列に追加されます。

  1. の中で MainActivity クラスの末尾を更新する。 onCreate 関数を使って EditTextView を使用する。 sendMessage 関数である:
messageEditTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            InputMethodManager inputMethodManager = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
            sendMessage();
            return true;
        }
        return false;
    }
});

そのとき EditTextView が実行されると sendMessage 関数が呼び出される。さて、UIを更新しよう:

  1. を開く。 activity_main.xml レイアウトファイル(res > layout)。
  2. コードビューを開く。
  3. このXMLを既存のレイアウトの上にコピーする:
  1. という名前の新しいレイアウトファイルを作成する。 message_single_local.xml このXMLで:
  1. を複製する。 message_single_local.xmlと呼ぶ。 message_single_remote.xmlそして、重力を次のように変更する。 start.
  2. メッセージ履歴用アダプタの追加 ListViewというクラスを作成する。 SignalMessageAdapter このコードで:
public class SignalMessageAdapter extends ArrayAdapter<SignalMessage> {

  public static final int VIEW_TYPE_LOCAL = 0;
  public static final int VIEW_TYPE_REMOTE = 1;
  private static final Map<Integer, Integer> viewTypes;

  static {
      Map<Integer, Integer> aMap = new HashMap<>();
      aMap.put(VIEW_TYPE_LOCAL, R.layout.message_single_local);
      aMap.put(VIEW_TYPE_REMOTE, R.layout.message_single_remote);
      viewTypes = Collections.unmodifiableMap(aMap);
  }

  public SignalMessageAdapter(Context context) {
      super(context, 0);
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
      SignalMessage message = getItem(position);

      if (convertView == null) {
          int type = getItemViewType(position);
          convertView = LayoutInflater.from(getContext()).inflate(viewTypes.get(type), null);
      }

      TextView messageTextView = (TextView) convertView.findViewById(R.id.message_text);
      if (messageTextView != null) {
          messageTextView.setText(message.getMessageText());
      }

      return convertView;
  }

  @Override
  public int getItemViewType(int position) {

      SignalMessage message = getItem(position);
      return message.isRemote() ? VIEW_TYPE_REMOTE : VIEW_TYPE_LOCAL;
  }

  @Override
  public int getViewTypeCount() {
      return viewTypes.size();
  }
}

アダプタは ListViewこれは、シグナルのカスタム・クラスを定義するものです。必要なクラスは必ずインポートしてください。

基本的なテキストチャット

このチュートリアルに従って、Vonage Video API を使用して基本的なテキストチャットをゼロから構築してください。これは、ビデオプラットフォーム上でこの機能の概念実証を構築する最も簡単な方法です。

以下の言語で利用可能:
JavaScript Java Swift
手順
1
概要
2
始める前に
3
Vonageビデオアプリケーションの設定
4
プロジェクトの作成
5
認証の設定
6
セッションへの接続
7
シグナルを送る
8
信号の受信
9
コードのテスト
10
結論