语音交友这两年特别火,尤其是在相亲场景里。相比刷文字消息,语音更真实、更有温度,尬聊的几率也小了不少。今天就分享一下,怎么用 uni-app 做一款相亲语音房小程序,并且接入 即构(ZEGO)的语聊房 SDK,从 0 到 1 把基础功能跑起来。

为什么选 uni-app + 即构?

先说框架。uni-app 的优势大家都知道:一次开发,多端运行,写一套代码就能跑在小程序、H5,甚至 App 上,适合小团队快速迭代。

再说语音。要实现低延迟、多人连麦、稳定可靠,其实自己做很难。即构的 语聊房 SDK 就是专门为这种场景准备的,优点大概有:

  • 超低延迟,不卡顿;

  • 房间、麦位、用户进出都有事件回调;

  • 百人上麦都能扛得住;

  • 跨端支持,兼容小程序。

所以,选型组合就是:前端用 uni-app,语音能力用 ZEGO SDK

项目初始化

  1. 即构官网注册账号,新建应用,拿到 AppIDAppSign

  2. 在控制台开通语聊房服务。

  3. 在 uni-app 项目里安装 SDK:

    npm install zego-express-miniapp-sdk --save
    

搞定这些,环境就算 ready 了。

开发流程

1. 初始化 SDK

在小程序启动时初始化 SDK,记得用你自己申请的 AppID

import ZegoExpressEngine from 'zego-express-miniapp-sdk';

const appID = 123456789; // 控制台获取
const server = 'wss://webliveroom...'; // 即构提供
let zg;

function initSDK() {
  zg = new ZegoExpressEngine(appID, server);
  console.log("即构 SDK 初始化成功");
}

2. 登录房间

用户点进语音房,需要先登录:

async function loginRoom(roomID, userID, userName, token) {
  try {
    await zg.loginRoom(roomID, token, { userID, userName });
    console.log("进入房间成功");
  } catch (err) {
    console.error("进房失败:", err);
  }
}

3. 上麦 / 下麦

  • 上麦(推流):

    let localStream = await zg.createStream();
    zg.startPublishingStream('streamID', localStream);
    
  • 下麦(停止推流):

    zg.stopPublishingStream('streamID');
    zg.destroyStream(localStream);
    

4. 播放别人声音

zg.on('roomStreamUpdate', (roomID, updateType, streamList) => {
  if (updateType === 'ADD') {
    zg.startPlayingStream(streamList[0].streamID);
  }
});

5. 事件监听

常见的就是监听用户和流的变化:

zg.on('roomUserUpdate', (roomID, updateType, userList) => {
  console.log("用户变化:", updateType, userList);
});

zg.on('roomStreamUpdate', (roomID, updateType, streamList) => {
  console.log("流变化:", updateType, streamList);
});

界面怎么设计?

在相亲语音房里,UI 其实挺重要,氛围要拉满。一般会分成几块:

  • 房间大厅:展示不同房间,用户点进去加入。

  • 语音房间页

    • 顶部:房间名、在线人数;

    • 中间:麦位区,头像 + 昵称,谁在说话可以加个动效;

    • 底部:操作区,常见的上麦、下麦、静音、送礼物、文字聊天。

相亲场景的特色玩法

光有语音还不够,交友类要有点“氛围感”和特色功能:

  1. 快速匹配
    根据兴趣标签,直接分配到合适的房间,提高效率。

  2. 资料卡
    点头像就能看到资料:年龄、职业、兴趣爱好,让大家更快了解彼此。

  3. 礼物系统
    语聊房标配,既能增加互动,也能给平台带来收入。

  4. 录音/回放
    可选功能,有些房间可以录制,用户错过还能回顾。

踩过的坑

  • 小程序权限:要记得在 app.json 里声明 recordaudio 权限,否则没法用麦克风。

  • 弱网体验:建议开启 SDK 的弱网抗性、音频降噪,否则在地铁里体验会很差。

  • 跨端兼容:uni-app 写一次是爽,但不同平台(微信/抖音/H5)还是会有些差异,提前测一测比较稳。

总结

整体开发下来,感受就是:

  • uni-app 负责壳子和 UI,降低多端开发成本;

  • 即构 SDK 负责语音能力,稳定、省心;

  • 剩下就是你自己加业务逻辑,比如匹配算法、礼物动画、相亲资料展示等。

这样一套下来,就能快速上线一款相亲交友语音房小程序了。后续如果结合 AI 推荐或语音分析,还能让相亲更智能、更高效。

Logo

致力于链接即构和开发者,提供实时互动和元宇宙领域的前沿洞察、技术分享和丰富的开发者活动,共建实时互动世界。

更多推荐