产品
解决方案
开发者
演示
价格
公司
所有博客

Yalla为什么受欢迎以及如何像Yalla一样构建一个聊天室应用程序?

10 分钟阅读
Feb 18, 2025

Yalla为什么受欢迎以及如何像Yalla一样构建一个聊天室应用程序?

什么是语音聊天应用

语音聊天房间是一个在线社区,用户可以在私人环境中与其他用户交流。这种类型的房间可以用于多种目的,例如与客户会面或解决与商业伙伴的问题。许多在线社区都有语音房间,用户可以就安排会议、研讨会以及讨论产品和服务更新及新闻等内容进行交流。

什么是Yalla语音聊天应用

Yalla语音聊天应用旨在连接用户群体,为希望结交来自世界各地朋友、享受有趣的语音通话和玩游戏的人提供连接来源!

应用名称

Yalla语音聊天应用

推出年份

2020年

总部地区

海湾合作委员会(GCC)

国家

50+

Apkpure评分

6.3/10

收入

6350万美元

主要收入来源

应用内虚拟物品购买,会员升级。

集成

Google Drive, Dropbox Business, Mailchimp, Google Analytics, Evernote Teams, Freshbooks, Zapier, Google Calendar, Adobe Campaign, CallTrekkingMetrics, Visual Visitor

Yalla为何如此受欢迎

回顾Yalla的发展历程,该公司成立于2016年,并在同年推出了以其名字命名的首款语音群聊产品。作为中东和北非首个纯语音社交产品,Yalla迅速在中东语音聊天市场上站稳脚跟,凭借高度本地化的内容和产品设计,Yalla Chat等产品在短时间内获得了市场认可。

**Yalla Group Voice Chat Rooms**

通过社交产品积累了大量用户后,Yalla开始进军轻量级游戏领域。2018年推出的“Yalla Ludo”标志着Yalla游戏业务的开始,也是首个将语音聊天房间功能整合到Ludo游戏中的产品。迄今为止,该产品每月仍能产生超过900万美元的全球收入,成为Yalla游戏业务的核心收入来源。

看到Ludo和语音聊天房间结合带来的巨大潜力,Yalla随后推出了其他产品,如在南美推出的“Yalla Parchis”,在沙特阿拉伯推出的“Yalla Baloot”,以及在土耳其推出的“101 Okey Yalla”,这些产品将语音聊天房间与当地游戏相结合。然而,就收入和产品表现而言,这些产品并未达到“Yalla Ludo”的高度。

从左到右:Yalla Parchis,Yalla Baloot,101 Okey Yalla

Merge Kingdoms”是第一款将语音聊天房间系统整合的SLG游戏。

实际上,对于硬核SLG玩家来说,实时沟通是一项重要的服务需求。在联盟战斗期间,往往需要长时间的深入交流,玩家通常使用Discord或TT等第三方应用进行实时沟通。然而,运行多个应用有时会影响稳定性。集成内置语音房间无疑是最“直接”的方法。

Merge Kingdoms语音聊天房间

在“Merge Kingdoms”的游戏玩法中,新手首先通过持续5-10分钟的教程进行介绍。该游戏采用中东主流的COK-Like玩法,进行了显著简化,以符合该地区大支出的玩家的偏好。

具体而言,“Merge Kingdoms”的游戏机制与“Top War”(Pocket Soldiers)相似,采用滑动合成的玩法。它消除了收集资源、升级建筑和部队的繁琐步骤,并包括“2倍速度战斗”和“跳过”等功能,允许玩家只需点击建筑即可收集资源,拖动以合成并进入战斗。

除了COK玩法外,“Merge Kingdoms”还融入了英雄发展系统。在战斗中,英雄先攻击,等级更高、品质更好的英雄能够造成更高的伤害,从而缩短战斗时间。

仅从游戏设计来看,“Merge Kingdoms”确实轻量且对新手极为友好,符合玩家对SLG游戏的期望。然而,毫无疑问的是,过于简化的玩法可能会降低玩家在后期的留存率。然而,语音聊天房间的增加有效地帮助抵消了潜在的疲劳感。

玩家可以通过点击主界面左下角的小房子图标进入语音聊天房间。除了第一个“联盟房间”,玩家还可以自由进入任何其他聊天房间。

除了个人语音聊天房间外,Yalla还在语音聊天房间中集成了赠礼系统、排行榜、迷你游戏和音乐播放等功能——这些都是 直播中常见的功能。在语音聊天房间中,如果您对某个话题感兴趣,可以立即成为“房主”开始讨论,其他用户可以加入对话并通过赠礼表达他们的感受。如果您希望在聊天的同时玩游戏,可以使用“挂断”功能,语音聊天房间将作为小部件出现在主界面的侧面。

凭借其全面的功能,即使是喜欢聊天和社交互动的用户,也可以将“Merge Kingdoms”的语音聊天房间作为独立应用使用,将游戏作为另一个讨论话题。在体验过程中,多个房间的聊天内容非常丰富,涵盖游戏策略、日常生活和其他主题。

该游戏本身更像是吸引用户的工具,而语音聊天房间则是转化目标用户的核心点。在游戏过程中,用户进入语音聊天房间的目的包括交朋友或寻求游戏策略。通过互动,他们逐渐发展出更多的社交需求。最终,大多数喜欢社交互动的用户可能会返回语音聊天房间的功能,而游戏用户则可能在联盟战斗期间将语音聊天房间作为语音设备使用。

如何构建自己的实时聊天应用:逐步指南

如果您想要构建自己的语音聊天应用,您可以在一小时内完成几个关键步骤,并获得具有完整UI界面和语音房间功能的应用。

以下内容以 Android集成 为例。如果您希望在iOS设备上安装语音聊天房间,请请参阅此处

环境准备

Android 5.0(SDK API级别21)或以上。

Android Studio 4.2.1或以上。

配备Android 5.0或以上的设备。

步骤1. 激活服务

在使用腾讯云提供的音频和视频服务之前,您需要去控制台激活您应用的服务。有关详细步骤,请参考 激活服务

步骤2:下载TUILiveKit组件

克隆/下载代码在 Github,然后将Android目录中的tuilivekit子目录复制到当前项目的同一级目录。

步骤3:项目配置

添加 jitpack 库依赖到您的项目中(下载第三方库 SVGAPlayer,用于播放礼物svg动画):

Gradle 7.0或更早版本

将jitpack库的地址添加到项目根目录的 build.gradle文件中:

allprojects {
    repositories {
        google()
        mavenCentral()
        // 添加jitpack库
        maven { url 'https://jitpack.io' }
    }
}

2. 找到项目根目录中的 settings.gradle文件,并在其中添加以下代码。其功能是将步骤2中下载的tuilivekit组件导入到当前项目:

include ':tuilivekit'

3. 找到应用目录中的 build.gradle文件,并在其中添加以下代码。其功能是声明当前应用对新添加的tuilivekit组件的依赖:

api project(':tuilivekit')

4. 由于我们在SDK内部使用Java的反射功能,需要将SDK中的一些类添加到未混淆列表中,因此您需要在 proguard-rules.pro文件中添加以下代码:

-keep class com.tencent.** { *; }

5. 在 AndroidManifest.xml中,为 application的 android:theme属性设置 Theme.AppCompat主题:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
        ...
    </application>
</manifest>

步骤4. 登录

在调用TUILiveKit组件的功能之前,您需要执行TUI组件的登录。在您的项目中,建议在您的业务登录场景或应用的首次启动活动中添加以下登录代码,用于通过调用TUICore中的相关API完成TUI组件的登录。此步骤非常重要,因为只有成功登录后,您才能使用TUILiveKit的所有功能。因此,请耐心检查相关参数是否正确配置。

import TUICore

TUILogin.login(context, 
    1400000001,     // 将其替换为步骤1中获得的SDKAppID
    "denny",        // 请将其替换为您的UserID
    "xxxxxxxxxxx",  // 您可以在控制台计算UserSig并填写
    new TUICallback() {
    @Override
    public void onSuccess() {
        Log.i(TAG, "登录成功");
    }

    @Override
    public void onError(int errorCode, String errorMessage) {
        Log.e(TAG, "登录失败,错误码: " + errorCode + " 消息:" + errorMessage);
    }
});

参数说明:login函数使用的关键参数如下所述:

SDKAppID: 在步骤1中获得的,不再详细说明。

UserID: 当前用户的ID,是一个字符串,仅可包含字母(a–z和A–Z)、数字(0–9)、连字符(-)或下划线(_)。

UserSig: 腾讯云用来验证当前用户是否被允许使用TRTC服务的认证凭证。您可以通过使用 SDKSecretKey加密如 SDKAppID和 UserID等信息获得。您可以通过单击控制台中的 User Generate按钮生成临时 UserSig

步骤5. 进入直播预览页面

  1. 创建一个名为app_activity_anchor.xml的新文件(默认路径:app/src/main/res/layout/app_activity_anchor.xml)。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_container'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>
  1. 创建一个名为 AnchorActivity.java的新文件,并在 AndroidManifest.xml中注册。通过加载TUILiveKit TUIVoiceRoomFragment页面,您可以调出预览页面。
public class AnchorActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_anchor);

        //RoomId可以自定义
        String roomId = "123666";

        TUIVoiceRoomFragment.RoomParams params = new TUIVoiceRoomFragment.RoomParams();
        //默认值为包支持的最大座位数
        params.maxSeatCount = 0;
        params.seatMode = TUIRoomDefine.SeatMode.APPLY_TO_TAKE;

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUIVoiceRoomFragment fragment = new TUIVoiceRoomFragment(roomId, 
        TUIVoiceRoomFragment.RoomBehavior.PREPARE_CREATE, params);
        fragmentTransaction.add(R.id.fl_container, fragment);
        fragmentTransaction.commit();
    }
}

在 AnchorActivity中注册 AndroidManifest.xml(请使用您实际的包名):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 示例:注册 AnchorActivity,请使用您实际的包名 -->
        <activity android:name="com.trtc.uikit.livekit.example.main.AnchorActivity"
                  android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

在需要开始直播的地方(根据您的业务,这可以在MainActivity中的单击事件中执行),执行以下操作以调出主播开始页面:

Intent intent = new Intent(context, AnchorActivity.class);
startActivity(intent);

步骤6:拉取房间列表

1,创建一个新的文件app_activity_main.xml(默认路径:app/src/main/res/layout/app_activity_main.xml)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_live_list'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>
  1. 创建MainActivity.java,注册到AndroidManifest.xml中,通过加载TUILiveKit的 TUILiveListFragment页面,您可以显示房间列表。
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_main);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUILiveListFragment listFragment = new TUILiveListFragment();
        fragmentTransaction.add(R.id.fl_live_list, listFragment);
        fragmentTransaction.commit();
    }
}

在应用的 AndroidManifest.xml中注册 MainActivity(请使用您实际的包名):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 示例:注册 MainActivity,请使用您实际的包名 -->
        <activity 
            android:name="com.trtc.uikit.livekit.example.view.main.MainActivity" 
            android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

步骤7. 观众进入直播间

创建一个名为app_activity_audience.xml的新文件(默认路径:app/src/main/res/layout/app_activity_audience.xml)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_container'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

创建一个名为 AudienceActivity.java的新文件,并在 AndroidManifest.xml中注册。通过加载TUILiveKit的 TUILiveRoomAudienceFragment页面,您可以进入房间。

public class AudienceActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_audience);
        //RoomId可以自定义
        String roomId = "123666";

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUIVoiceRoomFragment fragment = new TUIVoiceRoomFragment(roomId, 
                TUIVoiceRoomFragment.RoomBehavior.JOIN, null);
        fragmentTransaction.add(R.id.fl_container, fragment);
        fragmentTransaction.commit();
    }
}

在应用项目的 AndroidManifest.xml中注册 AudienceActivity(请使用您实际的包名):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 示例:注册 AudienceActivity,请使用您实际的包名 -->
        <activity android:name="com.trtc.uikit.livekit.example.main.AudienceActivity"
                  android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

在需要观众进入房间的地方(根据您的业务,这可以在MainActivity中的单击事件中执行),执行以下操作以调出观众入口页面:

Intent intent = new Intent(context, AudienceActivity.class);
startActivity(intent);

想要构建类似的应用或平台?立即获取免费的10,000分钟

免费开始

Yalla群语音聊天房间应用的关键功能

 多用户语音房间:Yalla允许用户创建或加入语音聊天房间,多个用户可以同时交谈,非常适合小组讨论和社交聚会。

 全球连接:与来自不同地区的人联系,使其成为文化交流和交友的绝佳平台。

 互动游戏:应用内集成了各种互动游戏,用户可以在语音聊天时一起玩,增加了乐趣和竞争元素。

 现场娱乐:Yalla举办现场活动,用户可以听音乐、观看表演并参与实时讨论,提供娱乐和参与感。

 用户资料和个性化:用户可以创建和定制自己的个人资料,包括头像、状态更新等,允许在社区内获得个性化体验和身份。

Yalla聊天房间应用的五个最佳替代品

Discord

Discord在游戏玩家中非常受欢迎,提供出色的语音聊天功能,以及文本和视频选项,适合休闲和专业互动。

Clubhouse

该应用专注于实时语音对话,房间可以就各种主题进行讨论,从技术到个人发展。

Viber

以安全消息传递而闻名,Viber还提供 语音和视频通话选项,包括群组语音聊天,附加功能如贴纸和GIF,使聊天体验更加生动。

Telegram

虽然主要是消息应用,但Telegram支持大型群组语音聊天,称为语音聊天2.0,适合举办现场直播或大型小组讨论。

Zello

该应用像对讲机一样工作,允许实时语音通信,具有简单的一键通话功能,适合快速高效的语音聊天。

常见问题解答

如何加入Yalla中的语音聊天房间?

要加入Yalla中的语音聊天房间,只需打开应用,浏览可用房间列表或使用搜索功能找到特定房间,然后点击加入。

我可以在Yalla中创建自己的聊天房间吗?

是的,Yalla允许用户创建自己的聊天房间。您可以设置主题,决定是公开还是私密,并邀请朋友或让任何人加入。

使用Yalla安全吗?

Yalla优先考虑用户安全,提供各种管理工具和指导,以确保尊重和安全的环境。但是,与任何在线平台一样,使用时务必谨慎,并保护个人信息。

Yalla支持多种语言吗?

是的,Yalla支持多种语言,使其能够接触全球受众,增强非英语用户的体验。

使用Yalla有任何费用吗?

Yalla可以免费下载和使用,但也提供应用内购买和订阅,以访问高级功能和内容。

如果您有任何问题或需要在线协助,我们的支持团队随时为您服务。请随时联系我们或加入我们的Telegram Discord