はじめに:
同社の製品は、コンテンツベースのソーシャルチャットソフトウェアで、音声通信のニーズを統合し、iOSのネイティブプロジェクトを書き込むとき、アゴラSDKを使用している、今の書き込みネイティブが直接アゴラライブラリを使用して反応します。
統合されたiOS版、Androidの手順:
:リンクを参照してくださいhttps://github.com/syanbo/react-native-agora
ヒント:アゴラライブラリーの2つのバージョンがありますので、あなたは、最新バージョンを使用しなければならないいくつかの機能を避けるためには、サポートされていません(統合の時点で著者が、注意を払っていない、投げがたくさんあること)
利用実績:
私は時間の始まりを記述する方法がわからない、公式のデモを参照してください。 https://github.com/agoraio-community/agora-rn-quickstart
図1に示すように、コードの主な機能:
configureAgora(){ VAR = この; CONST設定 = { APPID: "17423c8 *********** 5cd46f89e" 、 channelProfile:この.props.channelProfile、 clientRole:この.props.clientRole、 audioProfile:AudioProfileMusicHighQuality、 audioScenario:AudioScenarioChatRoomGaming、 } にconsole.log ( "[CONFIG]" 、JSON.stringify(設定))。 console.log( "[CONFIG.encoderConfig" 、config.videoEncoderConfig)。 RtcEngine.on('videoSizeChanged'、(データ)=> { にconsole.log( "[RtcEngine] videoSizeChanged" 、データ) }) RtcEngine.on( 'remoteVideoStateChanged'、(データ)=> { にconsole.log(「[RtcEngine] `remoteVideoStateChanged` ' 、データ); }) RtcEngine.on( 'userJoined'、(データ)=> { // 用户加入 }) RtcEngine.on( 'userOffline'、(データ)=> { // 用户下线 }) RtcEngine。 (上の 'audioVolumeIndication'、(データ)=> { にconsole.log(データ)。 }) RtcEngine.on( 'clientRoleChanged'、(データ)=> { にconsole.logは( "[RtcEngine] onClientRoleChanged" 、データ); }) RtcEngine.on( 'joinChannelSuccess'、(データ)=> { にconsole.logは(「[ RtcEngine] onJoinChannelSuccess' 、データ); // はconsole.log(RtcEngine.options); RtcEngine.startPreview()を(データ=> { // this.setState({ // joinSucceed:真、 // アニメーション:偽 / / }) }) // RtcEngine.setEnableSpeakerphone(真) //RtcEngine.setDefaultMuteAllRemoteAudioStreams(真) global.channel = data.channel global.voiceStatus = '参加' 。 }) RtcEngine.init(設定)。 RtcEngine.enableAudio() }
図2に示すように、チャネルを追加することによって
RtcEngine.joinChannel(この .props.childTribeId、Parse.User.current()attributes.uid、 ""、 ""。 ) .then(結果 => { })。
図3に示すように、出口流路
RtcEngine.leaveChannel((ステータス)=> {
にconsole.log(ステータス)
})
4、誰かが参加するか、終了し、プレイ音
ヒント:
図1に示すように、次のコードでファイルパス:絶対パスまたはURLは、相対パスを使用することはできません
図2は、soundidが正しい、直接貼り付けデモ場合、(:soundIdデモがある)エラーアウトとなり
RtcEngine.on( 'userJoined'、(データ)=> { // 用户加入 はconsole.log( '[RtcEngine] onUserJoined' 、データ); せplayEffectOption = { soundid: 1 、 ファイルパス:「https://でoops- * 。**** cos.ap-shanghai.myqcloud.com/in.mp3' 、 loopcountに: 0 、 ピッチ: 1 、 パン: 0 、 ゲイン: 40 、 発行:偽を、 }; RtcEngine.playEffect(playEffectOption) // CONST {peerIds} = this.state。 // IF(peerIds.indexOf(data.uid)=== -1){ // this.setState({ // peerIds:[... peerIds、data.uid] // }) // } }) RtcEngine .on( 'userOffline'、(データ)=> { // 用户下线 はconsole.log( '[RtcEngine] onUserOffline' 、データ); playEffectOptionを聞かせ = { soundid: 2 、 ファイルパス:「https://でoops- * 。**** cos.ap-shanghai.myqcloud.com/in.mp3' 、 loopcountに: 0、 ピッチ: 1 、 パン: 0 、 ゲイン: 40は、 発行:偽、 }。 RtcEngine.playEffect(playEffectOption) })