ライブオーディオストリーミングを構築する
8525 ワード
ライブオーディオストリーミングはますます、ライブポッドキャストやインタビューの音楽パフォーマンスをライブから使用の広い範囲で人気が高まっている.可能性は無限の一度は、リアルタイムで視聴者と魅力的ないくつかのユーザーがあります.
AGRA反応ネイティブSDKを使用してライブオーディオストリーミングを達成する簡単な方法があります.このチュートリアルでは、我々はAgoraオーディオSDKを利用することにより、複数のブロードキャスターとホストの何千人ものユーザーを持つことができるライブオーディオ放送アプリを構築するまで歩いていきます.我々は、構造、セットアップ、およびアプリケーションの実行を実行する前にダイビングにコードをダイビングします.オープンソースコードが利用可能ですhere
私たちはAgora RTC SDK for React Native 例については.v 3を使っています.2.2書き込み時.
アゴラアカウントの作成
サインアップhttps://console.agora.io/ ダッシュボードにログインします.
「プロジェクト管理」タブの下にある「プロジェクト」タブに移動し、「BlueCreate」ボタンをクリックしてプロジェクトを作成します.
プロジェクトを作成し、アプリケーションIDを取得します.(アプリケーションID +証明書を使用するように求められたときにのみ、アプリケーションIDを選択します)アプリケーションIDは、トークンを生成せずに、アプリケーションを開発している間、あなたの要求を承認するために使用されます.
例の構造
これはアプリケーションの構造です.
アプリの実行
あなたはノードの最近のバージョンを持っている必要があります.JSとNPMのインストール; あなたがAGORA口座をセットアップして、プロジェクトをセットアップして、アプリID(上記で議論されるように)を生成したことを確認してください. マスターブランチからzipファイルをダウンロードして抽出します. ラン 移動する あなたがIOSのために建設しているならば、ターミナルを開けて、CD IOSとポッドインストールを実行してください. お使いのデバイスを接続し、NPXを実行するネイティブのAndroid/NPXのネイティブアプリケーションの起動IOSの反応を起動するアプリを起動します.アプリを構築し、お使いのデバイスにインストールするには数分を与えます. したら、デバイス上の[スタート]ボタンをクリックして、モバイルデバイス上のホーム画面を参照してください. それです.あなたは2つのデバイス間のオーディオ放送を行く必要があります.
アプリを使用する
コードにダイブする前に、いくつかの基本的な方法を取り出しましょう. 我々は、チャンネルに接続して、オーディオ呼び出しに加わるために、AGORA RTC(リアルタイム通信)SDKを使用します. 我々は、複数のユーザーがチャンネルに放送することができます.そのチャンネルの視聴者としてのすべてのユーザーは、放送局に聞くことができます. 観客は動的にブロードキャスターの役割に切り替えることができます. AGORA RTC SDKは、各ユーザに固有のID(UID)を使用します.これらのUIDをユーザ名に関連づけるために、我々はAGORA RTM(Real Time Messaging)SDKを使用して、ユーザ名を呼び出しで他のユーザーに通知します.以下にどのようにして行うかを議論します.
コードの仕組みを見てみましょう.
アプリ.TSX
アプリ.TSXは、アプリケーションにエントリポイントになります.このファイルにすべてのコードがあります.あなたがアプリケーションを開くと、3つのボタンでユーザー名フィールドがあります:呼び出しに参加し、呼び出しを終了し、ブロードキャスターと観客の間で私たちのユーザーロールを切り替える.
< div >
< p >使用するインポート文を書くことから始めます.次に、以下を含むアプリケーション状態のインターフェイスを定義します
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/c64e5a423b37318d207bdc9622778907.js//>
< div >
< p >クラスベースのコンポーネントを定義します
コンストラクタでは、状態変数を設定し、Android上でオーディオを録音するリクエストを許可します.(ヘルパー関数を
< H >
RTC初期設定
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/cb07d1ccdcfed7532ef7825c6545c774.js//>
< div >
< br/>
我々は、Appのインスタンスを使用してエンジンのインスタンスを作成します.次は設定します
RTCがトリガする
< H >
RTM初期設定
<高橋潤子>
< tt > RTMを使ってユーザ名を他のユーザ名に送信します.そして、これは私たちのユーザ名をRTC UID と関連づける方法です
<ウル> ユーザーがチャンネルに参加すると、すべてのチャネルメンバーにメッセージを送信します チャネルメッセージを受信すると、すべてのユーザーがキーの値のペアをユーザ名の辞書に追加します. 新しいユーザーが結合すると、チャネル上のすべてのメンバーが同じスキーマでそのユーザーにピアメッセージを送信します ピアメッセージを受信すると、我々は(キーの値ペアを辞書に追加)と我々のユーザー名を更新します.
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/f05b2b2242227d3b6d4debd5ebfbae8e.js//>
< div >
我々の計画に続いて、我々はイベント・リスナーに機能を付けて、ユーザー名を < ull >
< H >
機能ボタン
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/1e5a58e6b1582319a435c52e58c00ccf.js//>
< div >
< br/>
The
The
The
< H >
UIのレンダリング
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/866730eb71496b1ee0658b81fa57f02d.js//>
< div >
< br/>
我々は、機能を切り替えるには、呼び出しを開始し、終了するボタンを表示するためのレンダリング機能を定義します.機能を定義する
< H >
許可.TS
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/bf4ad0db0fcff4d7c8b8a33517698c97.js//>
< div >
< br/>
我々は、AndroidのOSからマイクのアクセス許可を要求するためにヘルパー機能をエクスポートしている.
< H >
スタイル.TS
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/469608265b48f286226f9285f31bf6fe.js//>
< div >
< br/>
作風.TSファイルには、コンポーネントのスタイルが含まれます.
< H >
結論
<高橋潤子>
それはライブオーディオアプリケーションを構築する方法は簡単です.AGORA SDKSを使用したアプリケーションの構築についての詳細は、Agora Video Call Quickstart Guide and Agora API Reference .
私はあなたに加わるために招待しますAgora Developer Slack community . あなたは、アゴラについての質問をすることができます
AGRA反応ネイティブSDKを使用してライブオーディオストリーミングを達成する簡単な方法があります.このチュートリアルでは、我々はAgoraオーディオSDKを利用することにより、複数のブロードキャスターとホストの何千人ものユーザーを持つことができるライブオーディオ放送アプリを構築するまで歩いていきます.我々は、構造、セットアップ、およびアプリケーションの実行を実行する前にダイビングにコードをダイビングします.オープンソースコードが利用可能ですhere
私たちはAgora RTC SDK for React Native 例については.v 3を使っています.2.2書き込み時.
アゴラアカウントの作成
サインアップhttps://console.agora.io/ ダッシュボードにログインします.
「プロジェクト管理」タブの下にある「プロジェクト」タブに移動し、「BlueCreate」ボタンをクリックしてプロジェクトを作成します.
プロジェクトを作成し、アプリケーションIDを取得します.(アプリケーションID +証明書を使用するように求められたときにのみ、アプリケーションIDを選択します)アプリケーションIDは、トークンを生成せずに、アプリケーションを開発している間、あなたの要求を承認するために使用されます.
Note: This guide does not implement token authentication which is recommended for all RTE apps running in production environments. For more information about token-based authentication within the Agora platform please refer to this guide: https://docs.agora.io/en/Video/token?platform=All%20Platforms
例の構造
これはアプリケーションの構造です.
.
├── android
├── components
│ └── Permission.ts
│ └── Style.ts
├── ios
├── App.tsx
├── index.js
.
アプリの実行
あなたはノードの最近のバージョンを持っている必要があります.JSとNPMのインストール;
npm install
アプリケーションの依存関係をunzipディレクトリにインストールします../App.tsx
としてアプリのIDを入力してappId: YourAppIdHere
州宣言で.アプリを使用する
channel-x
チャネル名として.コードにダイブする前に、いくつかの基本的な方法を取り出しましょう.
コードの仕組みを見てみましょう.
アプリ.TSX
アプリ.TSXは、アプリケーションにエントリポイントになります.このファイルにすべてのコードがあります.あなたがアプリケーションを開くと、3つのボタンでユーザー名フィールドがあります:呼び出しに参加し、呼び出しを終了し、ブロードキャスターと観客の間で私たちのユーザーロールを切り替える.
< div >
< p >使用するインポート文を書くことから始めます.次に、以下を含むアプリケーション状態のインターフェイスを定義します
appId
: アゴラアプリID < br/>token
: チャネルに参加するトークン< br/>isHost
: オーディエンスとブロードキャスターを切り替えるブール値< br/>channelName
: チャネル< br/>の名前joinSucceed
: 私たちがうまく接続したならば保存するブール値rtcUid
: RTCチャンネル< br/>に接続するローカルユーザのUIDmyUsername
: RTM < br/>にログインするローカルユーザ名usernames
: リモートユーザのRTC UIDをユーザ名に関連づける辞書で、RTM < br/>を使用しますpeerIds
: 他のユーザのUIDをチャネルに保存する配列< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/c64e5a423b37318d207bdc9622778907.js//>
< div >
< p >クラスベースのコンポーネントを定義します
_rtcEngine
変数は、RtcEngine
クラスと_rtmEngine
変数は、RtmEngine
SDK関数にアクセスするためのクラスです.p >コンストラクタでは、状態変数を設定し、Android上でオーディオを録音するリクエストを許可します.(ヘルパー関数を
permission.ts
, 後述する.コンポーネントがマウントされると、initRTC
and initRTM
アプリケーションIDを使用してRTCとRTMエンジンを初期化する関数.コンポーネントがアンマウントされると、エンジンインスタンスを破壊します.p >< H >
RTC初期設定
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/cb07d1ccdcfed7532ef7825c6545c774.js//>
< div >
< br/>
我々は、Appのインスタンスを使用してエンジンのインスタンスを作成します.次は設定します
channelProfile
放送するclientRole
我々に基づきますisHost
状態変数値.RTCがトリガする
userJoined
我々がチャンネルに加わるとき、そして、後で結合する各々の新しいユーザーのために、各々のユーザーのためのイベントは現れます.The userOffline
イベントは、ユーザーがチャネルを離れるときにトリガされます.我々は、イベントリスナーを使用して同期するpeerIds
配列p >Note: Audience members don’t trigger the userJoined/userOffline event.
< H >
RTM初期設定
<高橋潤子>
< tt > RTMを使ってユーザ名を他のユーザ名に送信します.そして、これは私たちのユーザ名をRTC UID と関連づける方法です
<ウル>
UID:Username
. UID:Username
. < div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/f05b2b2242227d3b6d4debd5ebfbae8e.js//>
< div >
我々の計画に続いて、我々はイベント・リスナーに機能を付けて、ユーザー名を
channelMessageReceived
(ブロードキャストメッセージをチャネル)messageReceived
(ピアメッセージ)channelMemberJoined
イベント.また、同じアプリケーションIDを使用してエンジン上のクライアントを作成します.< H >
機能ボタン
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/1e5a58e6b1582319a435c52e58c00ccf.js//>
< div >
< br/>
The
toggleRole
関数は状態を更新し、setClientRole
関数はstateに基づいた正しい引数を指定します.br/>The
startCall
関数はユーザ名が入力されたかどうかを調べる.それから、それはRTCチャンネルに加わります.また、RTMにログインして、チャンネルに加わり、以前に議論したように、ユーザ名のためにチャンネルメッセージを送りますbr/>The
endCall
関数はRTCチャンネルを残し、リモートユーザ辞書からユーザ名を削除するために使用されるメッセージを送信し、その後RTMから出てログを出力する.< H >
UIのレンダリング
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/866730eb71496b1ee0658b81fa57f02d.js//>
< div >
< br/>
我々は、機能を切り替えるには、呼び出しを開始し、終了するボタンを表示するためのレンダリング機能を定義します.機能を定義する
_renderUsers
それはすべての放送局と観客のリストをレンダリングします.< H >
許可.TS
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/bf4ad0db0fcff4d7c8b8a33517698c97.js//>
< div >
< br/>
我々は、AndroidのOSからマイクのアクセス許可を要求するためにヘルパー機能をエクスポートしている.
< H >
スタイル.TS
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/EkaanshArora/469608265b48f286226f9285f31bf6fe.js//>
< div >
< br/>
作風.TSファイルには、コンポーネントのスタイルが含まれます.
< H >
結論
<高橋潤子>
それはライブオーディオアプリケーションを構築する方法は簡単です.AGORA SDKSを使用したアプリケーションの構築についての詳細は、Agora Video Call Quickstart Guide and Agora API Reference .
私はあなたに加わるために招待しますAgora Developer Slack community . あなたは、アゴラについての質問をすることができます
#react-native-help-me
さんのチャンネルp >Reference
この問題について(ライブオーディオストリーミングを構築する), 我々は、より多くの情報をここで見つけました https://dev.to/ekaansharora/building-a-live-audio-streaming-react-native-app-with-agora-3be2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol