如何在React Native Agora UIKit中默认禁用视频或发起音频通话?
问题1:在React Native Agora UIKit中默认禁用视频功能
要默认禁用本地视频,直接在UIKit的初始化配置里设置相关参数即可:
- 初始化
AgoraUIKit时,在config对象中添加videoEnabled: false,这会让本地视频轨道默认处于关闭状态 - 如果需要完全隐藏视频相关的UI控件(比如视频开关按钮),可以额外设置
showVideoButton: false
代码示例:
import { AgoraUIKit } from 'react-native-agora-uikit'; const YourComponent = () => { const agoraConfig = { appId: '你的Agora App ID', channel: '测试频道', videoEnabled: false, // 默认禁用本地视频 showVideoButton: false, // 隐藏视频开关按钮(可选) }; return <AgoraUIKit config={agoraConfig} />; };
如果需要确保加入频道后视频不会意外开启,还可以在onJoinChannelSuccess回调中显式调用禁用视频的方法:
const handleJoinSuccess = async (agoraEngine) => { await agoraEngine.disableVideo(); }; // 在AgoraUIKit中传入回调 <AgoraUIKit config={agoraConfig} onJoinChannelSuccess={handleJoinSuccess} />
问题2:使用React Native Agora UIKit发起音频通话
发起纯音频通话的核心是配置UIKit为音频优先模式,同时屏蔽所有视频相关功能:
- 配置基础参数时,禁用视频并隐藏视频相关UI控件
- 可选配置音频场景和音质,优化通话体验
- 通过Agora引擎的
joinChannel方法发起通话
代码示例:
import { AgoraUIKit, useAgora } from 'react-native-agora-uikit'; const AudioCallScreen = () => { const { agoraEngine } = useAgora(); const audioCallConfig = { appId: '你的Agora App ID', channel: '音频通话频道', mode: 'rtc', // 实时通话模式 videoEnabled: false, // 禁用本地视频 showVideoButton: false, // 隐藏视频开关按钮 showCameraButton: false, // 隐藏摄像头切换按钮 audioConfig: { audioScenario: 'communication', // 适配语音通话场景 audioProfile: 'speech_standard', // 标准语音音质 }, }; // 发起音频通话 const startAudioCall = async () => { try { await agoraEngine.joinChannel(audioCallConfig.token, audioCallConfig.channel, null, audioCallConfig.uid); } catch (err) { console.error('发起通话失败:', err); } }; return ( <> <button onPress={startAudioCall}>发起音频通话</button> <AgoraUIKit config={audioCallConfig} /> </> ); };
注意事项:
- 确保已在项目中配置好音频权限:安卓需添加
RECORD_AUDIO权限,iOS需在Info.plist中添加NSMicrophoneUsageDescription说明 - 如果使用Token鉴权,记得在
audioCallConfig中传入有效的token参数
内容的提问来源于stack exchange,提问作者Muhammad Muaz
相关产品推荐
相关产品推荐

