出版するプリフライトとパーミッション

このガイドを使用して、公開を開始する前に権限と機能を検証し、ユーザーがスムーズに体験できるようにします。ローカルの動画をプレビューし、カメラ/マイクの許可状態を確認し、クライアントが公開できることを確認します。

ストリーミング前のプレビュー

デフォルトでは、Publisherビューはストリーミング開始時にローカルプレビューを表示します。また、公開前に明示的にプレビューをレンダリングすることもできます:

パブリッシャがストリーミングを開始する前にビデオのプレビューを表示するには startPreview() メソッドを呼び出します:

を呼び出すと startPreview() メソッドを呼び出す必要があります。 destroy() メソッドを使用して、パブリッシャーのビュー(および動画)を削除します。 onStreamDestroyed(PublisherKit publisher, Stream stream) PublisherListenerのメソッドが呼び出される)。

カメラへのアクセスをチェックする

公開前にカメラのアクセス許可を確認し、必要であればアクセスを可能にするようユーザーを誘導することをお勧めします。

を呼び出すことで、このプロンプトが表示されるタイミングを制御できます。 AVCaptureDevice requestAccess(for:completionHandler:)AVMediaType.Videoこれは、最初の実行時にプロンプトを表示する。それ以降の呼び出しでは、ユーザーが保存したプリファレンスで完了ハンドラが実行される。

パブリッシュ機能のチェック

セッションに接続した後、クライアントがパブリッシュできるかどうかを確認できます。

セッションに接続したら、クライアントがパブリッシュできるかどうかをチェックできます。セッションへの参照を OTSession オブジェクトを呼び出し getCapabilites() メソッドの sessionConnected イベントハンドラを返します。このメソッドは canPublish プロパティを指定します。そして、その値に基づいて条件付きでパブリッシュすることができます:

import React, {Component} from 'react';
import {View} from 'react-native';
import {OTSession, OTPublisher, OTSubscriber} from 'opentok-react-native';

class App extends Component {
  constructor(props) {
    super(props);
    this.apiKey = 'your API key';
    this.sessionId = 'a session ID';
    this.token = 'a valid token';
    this.state = {canPublish: false};

    this.sessionEventHandlers = {
      sessionConnected: event => {
        this.connectionCount++;
        this.session.getCapabilities().then(capabilities => {
          this.setState({canPublish: capabilities.canPublish});
        });
      },
    };
  }

  render() {
    return (
      <View
        <OTSession
          applicationId={this.apiKey}
          sessionId={this.sessionId}
          token={this.token}
          ref={instance => {
            this.session = instance;
          }}
          eventHandlers={this.sessionEventHandlers}>
          {this.state.canPublish ? (
            <OTPublisher/>
          ) : null}
          <OTSubscriber/>
        </OTSession>
      </View>
    );
  }
}

export default App;

パブリッシュするには、クライアントはトークンでセッションに接続しなければならない。 役割 出版をサポートする。

プリフライトが完了したら、デバイスと品質を設定するには、次の手順に進みます。 公開する設定とデバイス.