Commit cbc8eed5 by 修福龙

重力感应为零时,验证码弹窗和输入手机号码弹窗自动隐藏

parent 0acec087
......@@ -2,7 +2,9 @@ import React, {Component} from 'react';
import {View, Text, Image, Dimensions} from 'react-native';
import AsyncStorage from '@react-native-community/async-storage';
import {connect} from 'react-redux';
// import {RtcEngineEvents} from 'react-native-agora/lib/RtcEvents';
import RtcEngine from 'react-native-agora';
import {RtcChannel} from 'react-native-agora';
import Touch from '../components/Touch';
import PhoneModal from '../components/PhoneModal';
import VerifyCodeModal from '../components/VerifyCodeModal';
......@@ -11,6 +13,7 @@ import delay from '../utils/delay';
import Speech from '../utils/Speech';
import WxFacepay from '../utils/WxFacepay';
import phone from '../assets/Vertical/phone.png';
// import log from './engine.log';
const {width} = Dimensions.get('screen');
......@@ -42,6 +45,7 @@ class FacePage extends Component {
async componentDidMount() {
this.listen();
// this.setAgoreEventListener();
}
onSubmit = async phone => {
......@@ -107,6 +111,7 @@ class FacePage extends Component {
};
listen = async () => {
try {
while (!window.socket) {
await delay(1000);
}
......@@ -118,37 +123,168 @@ class FacePage extends Component {
// 重力感应变化
window.socket.on('scale', this.handleScaleChange);
}
if (!window.socket.hasListeners('talkCall')) {
// 语音通话中
window.socket.on('talkCall', this.handleTalkCall);
// window.socket.on('talkCall', ({code, id, number, channel, device}) => {
// console.log(code, id, number, channel, device);
// if (code === 1) {
// this.setState({
// talkCall: 0,
// });
// } else if (code === 2) {
// this.setState({
// talkCall: 1,
// if (!window.socket.hasListeners('talkCall')) {
// // 语音通话中
// window.socket.on('talkCall', this.handleTalkCall);
// // window.socket.on('talkCall', ({code, id, number, channel, device}) => {
// // console.log(code, id, number, channel, device);
// // if (code === 1) {
// // this.setState({
// // talkCall: 0,
// // });
// // } else if (code === 2) {
// // this.setState({
// // talkCall: 1,
// // });
// // }
// // console.warn(code, id, number, channel, device);
// // });
// }
// const {data} = await this.props.dispatch({
// type: 'store/agora',
// });
// console.warn(data);
// config.appid = data.appid;
// if (!this.engine) {
// this.engine = await RtcEngine.create(config);
// }
// console.warn(code, id, number, channel, device);
// console.log(data);
// if (!this.engine) {
// this.engine = await RtcEngine.create(data.appid);
// }
// // await this.engine.setLogFile('/engine.log'); //设置日志文件
// // await this.engine.setLogFileSize(1024); //指定 SDK 输出日志文件的内存大小,单位为 KB
// await this.engine.disableVideo(true); // 关闭视频模块
// await this.engine.enableLocalAudio(false); //调用 enableLocalAudio(false) 关闭本地采集后,系统会走媒体音量
// await this.engine.muteAllRemoteAudioStreams(false); //停止/恢复接收所有音频流。
// await this.engine.setDefaultMuteAllRemoteAudioStreams(false); // 设置是否默认接收音频流
// await this.engine.setDefaultMuteAllRemoteVideoStreams(true); // 设置是否默认接收视频流
// await this.engine.disableVideo(); //关闭视频模块
// await this.engine.setAudioProfile(4, 3); //设置音频编码配置
// await this.engine.adjustPlaybackSignalVolume(400); //调节本地播放的所有远端用户音量
// await this.engine.adjustAudioMixingPlayoutVolume(100); //调节音乐文件的本地播放音量
// await this.engine.setDefaultAudioRoutetoSpeakerphone(true); //默认从外放(扬声器)出声
// this.engine.addListener('Warning', data => {
// console.log('Warning' + data);
// });
// this.engine.addListener('Error', data => {
// console.log('Error' + data);
// });
// this.engine.addListener('JoinChannelSuccess', data => {
// console.warn('JoinChannelSuccess');
// console.warn(data);
// });
} catch (e) {
console.log(e);
}
};
handleTalkCall = async () => {
try {
// const {talkCall} = this.state;
// 加入语音通话
clearInterval(this.noTalkCall);
const {data} = await this.props.dispatch({
type: 'store/agora',
});
const engine = await RtcEngine.create(data.appid);
await engine.joinChannel(data.token, data.channel, null, 0);
console.log(data);
if (!this.engine) {
this.engine = await RtcEngine.create(data.appid);
// await this.engine.setLogFile('./engine.log'); //设置日志文件
// await this.engine.setLogFileSize(1024); //指定 SDK 输出日志文件的内存大小,单位为 KB
}
this.engine.createRtcChannel(data.channel);
this.engine.addListener('Warning', data => {
console.log('Warning' + data);
});
this.engine.addListener('Error', data => {
console.log('Error' + data);
});
this.engine.addListener('JoinChannelSuccess', data => {
console.warn('JoinChannelSuccess');
console.warn(data);
});
RtcChannel.joinChannel(data.token, null, 99, {
autoSubscribeAudio: true,
autoSubscribeVideo: false,
}); //Join Channel
RtcChannel.enableAudio();
// await this.engine.disableVideo(true); // 关闭视频模块
// await this.engine.enableLocalAudio(false); //调用 enableLocalAudio(false) 关闭本地采集后,系统会走媒体音量
// await this.engine.muteAllRemoteAudioStreams(false); //停止/恢复接收所有音频流。
// await this.engine.setDefaultMuteAllRemoteAudioStreams(false); // 设置是否默认接收音频流
// await this.engine.setDefaultMuteAllRemoteVideoStreams(true); // 设置是否默认接收视频流
// await this.engine.disableVideo(); //关闭视频模块
// await this.engine.setAudioProfile(4, 3); //设置音频编码配置
// await this.engine.adjustPlaybackSignalVolume(400); //调节本地播放的所有远端用户音量
// await this.engine.adjustAudioMixingPlayoutVolume(100); //调节音乐文件的本地播放音量
// await this.engine.setDefaultAudioRoutetoSpeakerphone(true); //默认从外放(扬声器)出声
//
// // await this.engine.addHandler(); //添加主回调事件
// await this.engine.enableWebSdkInteroperability(true); //打开与webSDK的互通
// await this.engine.setChannelProfile(0);
// await this.engine.setClientRole(1); //设置为主播角色
// // await this.engine.enableAudio();
// await this.engine.joinChannel(data.token, data.channel, null, 99);
// // await this.engine.setEnableSpeakerphone(true); //切换到外放
// if (!(await this.engine.isSpeakerphoneEnabled())) {
// console.warn(await this.engine.setEnableSpeakerphone(true));
// await this.engine.setEnableSpeakerphone(true); //切换到外放
// }
// console.warn(await this.engine.getCallId());
this.setState({
talkCall: 1,
});
} catch (e) {
console.log(e);
}
};
//设置事件监听
// setAgoreEventListener = () => {
// RtcEngine.Warning();
// RtcEngine.Error();
// RtcEngine.ApiCallExecuted();
// RtcEngine.JoinChannelSuccess();
// RtcEngine.LeaveChannel();
// // this.engine.addListener('Error');
// // this.engine.addListener('JoinChannelSuccess', res => {
// // console.warn('JoinChannelSuccess' + res);
// // });
// //成功加入房间
// // this.engine.onJoinChannelSuccess = (channel, uid, elapsed) => {
// // console.warn(`成功加入房间,频道号:${channel}+uid+${uid}`);
// // };
// //
// // //监听是否有新用户加入
// // this.engine.onUserJoined = (uid, elapsed) => {
// // console.warn(`新用户所加入的id为:${uid}`);
// // };
// //
// // //监听用户是否离开这个房间
// // this.engine.onUserOffline = (uid, reason) => {
// // console.warn(`用户离开的id为:${uid}`);
// // };
// //
// // //监听用户是否离开这个频道
// // this.engine.onLeaveChannel = () => {
// // console.warn('用户离开');
// // };
// };
leaveC = async () => {
const {data} = await this.props.dispatch({
type: 'store/agora',
});
if (!this.engine) {
this.engine = await RtcEngine.create(data.appid);
}
// if (this.engine) {
console.warn('121212');
await this.engine.leaveChannel();
// }
};
// device 代表当前打开的门
......@@ -159,7 +295,15 @@ class FacePage extends Component {
} else if (count === 0) {
// 重力感应归零
clearInterval(this.noTalkCall);
this.setState({orderDetailsModal: false, current: 1});
if (!this.engine) {
this.engine.leaveChannel();
}
this.setState({
orderDetailsModal: false,
phoneModal: false,
verifyCodeModal: false,
current: 1,
});
}
};
......@@ -313,7 +457,7 @@ class FacePage extends Component {
<PhoneModal
visible={phoneModal}
transparent
maskClosable
// maskClosable
onClose={this.handleClose}
onRequestClose={this.handleClose}
onSubmit={this.onSubmit}
......@@ -321,7 +465,7 @@ class FacePage extends Component {
<VerifyCodeModal
visible={verifyCodeModal}
transparent
maskClosable
// maskClosable
onClose={this.handleCodeClose}
onRequestClose={this.handleCodeClose}
onSubmit={this.onCodeSubmit}
......@@ -392,13 +536,15 @@ class FacePage extends Component {
<Text style={styles.callText}>呼叫客服</Text>
</View>
{/*{talkCall === 1 ? (*/}
{/* <View style={styles.onCall}>*/}
{/* <Touch onPress={this.leaveC} style={styles.footer} feedback={false}>*/}
{/* <View style={styles.call}>*/}
{/* <Image*/}
{/* source={require('../assets/call.gif')}*/}
{/* style={styles.callGif}*/}
{/* />*/}
{/* <Text style={styles.onCallText}>正在语音通话中</Text>*/}
{/* </View>*/}
{/* </Touch>*/}
{/*) : talkCall === 0 ? (*/}
{/* <View style={styles.onCall}>*/}
{/* <Image*/}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment