V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MrdotX
V2EX  ›  程序员

求助帖:想开发一个对讲机 App

  •  1
     
  •   MrdotX · 4 天前 · 3501 次点击

    背景:

    我是移动端开发,想开发出来一个对讲机 App

    功能:

    1. 添加好有
    2. 创建房间(可设置密码)
    3. 房间内实时对讲机语音
    4. 支持文字聊天(可选)

    疑问:想咨询搞音频的大佬们几个问题:

    1. 有没有不错的开源后端技术方案(音频压缩节省流量、延时低)
    2. 后端用什么开发语言比较合适
    3. 如果同时在线 1000 人同时语音,服务器一个月估计得多少花销
    halov
        1
    halov  
       4 天前
    要不直接入职 yy 语音呢
    toan
        2
    toan  
       4 天前   ❤️ 4
    建议只专注对讲这一功能。 (就仿照对讲机场景)
    设置频道号 --> 加入频道号 --> 点击对讲按钮说话(频道内仅 1 个人可讲话) --> 频道内其它终端自动播放讲话人语音。

    建议专一,功能上做减法,越专精的越有使用场景(对讲机的特殊场景)。否则就成了普通的聊天应用了。
    xiaozecn
        3
    xiaozecn  
       4 天前
    南山对讲
    imes
        4
    imes  
       4 天前   ❤️ 2
    你这个就是 yy ,只不过你正好迟了 20 年。李学凌当年的理想是"不卡、不掉、不延时",我劝你不要再走一次路,这不是一个人或者一个小团队能实现的。不如像 2 楼说的那样,给产品做减法,现在很多公司有这种低通讯场景。
    1. 都是核心技术,没有现成的开源方案,你最多只能借鉴 matrix 的实现
    2. 后端 C/C++,赶潮流就用 golang/rust
    3. 不需要考虑服务器成本这个问题,地推/拉新的成本比服务器贵一个数量级以上
    dzdh
        5
    dzdh  
       4 天前
    p2p 对讲。引入 rtsp 。
    lloovve
        6
    lloovve  
       4 天前 via iPhone
    这个我专业,目前有全套解决方案
    dzdh
        7
    dzdh  
       4 天前   ❤️ 1
    wxyrrcj
        8
    wxyrrcj  
       4 天前   ❤️ 1
    https://github.com/mumble-voip/mumble 如何 这个就是安卓外放连续对话的话有重声 不知道现在优化没
    nzynzynzy
        9
    nzynzynzy  
       4 天前
    你要找的是不是:微信

    功能:
    添加好有 - 有了,几乎人人都有账号
    创建房间(可设置密码) - 微信群语音聊天,甚至可以二维码入群
    房间内实时对讲机语音 - 不仅可以实时语音还可以延时语音( aka 语音消息 60s )
    支持文字聊天(可选) - 还可以发表情发红包

    问题:不支持 1000 人同时语音,但是 1000 人同时语音你怕是也听不见(参考过年时候的火车站)
    wyntalgeer
        10
    wyntalgeer  
       4 天前
    @nzynzynzy 噗笑了,你自己再好好断一下句:“同时在线 1000 人|||||||同时语音”,是不是你说的火车站
    levelworm
        11
    levelworm  
       4 天前
    好奇一把这玩意加密怎么弄?
    yidev
        12
    yidev  
       4 天前
    南山, 淘淘, 微喇. 参考一下
    gscsnm
        13
    gscsnm  
       4 天前
    南山对讲,看下
    nzynzynzy
        14
    nzynzynzy  
       4 天前
    @wyntalgeer #10 这么说很有道理!
    hlbwd
        15
    hlbwd  
       4 天前   ❤️ 1
    找个 RTC 云服务供应商,都会有对应的客户端 demo ;
    https://help.aliyun.com/zh/live/user-guide/voice-chat-room-solution

    可以前期用云服务按量计费的,功能比较完善,找准你的需求,后期可以做加减法,再考虑更换开源或自研的组件独立部署,降低成本
    kk2syc
        16
    kk2syc  
       4 天前
    我好奇如果一群轮子用你的这个对讲会发生什么?
    MrdotX
        17
    MrdotX  
    OP
       4 天前
    @xiaozecn @yidev @gscsnm 感谢,南山对讲我也看过,界面风格很不喜欢,想自己搞个玩玩
    MrdotX
        18
    MrdotX  
    OP
       4 天前
    @nzynzynzy 不是 1000 个人同时在一个房间讲话,如果一个房间同时只有一个人能讲话, 那么就是 1000 个房间同时讲话,指服务器端的压力以及流量消耗
    MrdotX
        19
    MrdotX  
    OP
       4 天前
    @lloovve 搞一套要多少钱啊
    vincentWdp
        20
    vincentWdp  
       4 天前
    agora 吧
    leokun
        21
    leokun  
       4 天前
    有一个 webrtc 群聊例子: https://github.com/anoek/webrtc-group-chat-example
    因为是点对点的,信令服务器几乎不需要什么资源
    flame666
        22
    flame666  
       4 天前
    悟空 IM ???
    jmliang
        23
    jmliang  
       4 天前
    声网
    sunziren
        24
    sunziren  
       4 天前
    加油老铁!
    janus77
        25
    janus77  
       4 天前
    你这个还是基于网络的吧,传统对讲机是无线电通信,有电就行,你这个还得有流量,有域名,这一套。。。。
    MrdotX
        26
    MrdotX  
    OP
       4 天前
    @janus77 是的呀,就是手机代替对讲机了
    darkengine
        28
    darkengine  
       4 天前
    @xz410236056 同想到这个,可惜 Android 没法用
    humbass
        29
    humbass  
       4 天前
    早 20 年立项 ,一个小目标不在话下。
    starliker
        30
    starliker  
       4 天前 via Android
    您是不是在说 zello?
    wuxiao2522
        31
    wuxiao2522  
       4 天前
    南山对讲
    MrdotX
        32
    MrdotX  
    OP
       4 天前
    @xz410236056 牛,涨姿势了,但是安卓不行,好可惜
    MrdotX
        33
    MrdotX  
    OP
       4 天前
    @starliker 看了下,Zello 好贵..
    MrdotX
        34
    MrdotX  
    OP
       4 天前
    @humbass 哈哈哈哈,我就随便搞搞,顺便提升技术
    xz410236056
        35
    xz410236056  
       4 天前
    @darkengine
    @MrdotX #32
    https://developer.apple.com/forums/thread/747530

    苹果的工程师说可以实现自己的音频编码和网络协议接入,不过没透露细节,这框架我也没用过。


    @MrdotX 先用简单方案验证可行性呗,国外有专门干这个的公司 https://nuovoteam.com/ 。看起来有不少问题需要解决呢
    ginakira
        36
    ginakira  
       4 天前
    无线电圈子里已经在用这种了,比如南山对讲、涛涛对讲,模拟/数字信号可以通过设备和网络对讲互通,纯网络对讲也支持
    bigtear
        37
    bigtear  
       4 天前
    思路打开,做一个手机天线,可以插进手机,用 App 或者天线上的按钮进行对讲。天线可以塞通信芯片,做成手机壳样式之类的。
    MrdotX
        38
    MrdotX  
    OP
       4 天前
    @xz410236056 感谢,我想先试试免费的 mumble
    MrdotX
        39
    MrdotX  
    OP
       4 天前
    @bigtear 这个天方夜谭了。。


    @ginakira 是的,但我想搞个纯手机端的就行
    SoulFlame
        40
    SoulFlame  
       4 天前
    咦,你是不是看到 vivo 更新的系统带的对讲机 APP 了?
    我最近更新系统,看到了,试玩了一下,里面也有介绍,宣称可无网使用对讲,说通过蓝牙 2.4g 频道啥的实现的,在空旷地方最大传输距离可达到 2km
    vfs
        41
    vfs  
       4 天前   ❤️ 1
    @levelworm 之前弄 voip 的时候, 这个加密就是 sip 层用 tls/dtls, rtp 层就是 dtls
    wbrobot
        42
    wbrobot  
       4 天前 via Android
    clubhouse 要气哭了,才几年呀,就一点影响都没有了。
    他们用的声网,一个语音 PaaS 平台
    importmeta
        43
    importmeta  
       4 天前   ❤️ 1
    之前打游戏, 有些服务器用这个软件, 还能自己搭建服务器, https://www.teamspeak.com/zh-CN/
    opengps
        44
    opengps  
       4 天前
    第三条不严谨,1000 人是发布,还是播放?还是混合?这里所占用的带宽方向不一致,所以没法估算
    rocmax
        45
    rocmax  
       4 天前 via Android
    webrtc 的开源项目有很多,找个提供 Mobile sdk 的就行,一般也会提供付费的云端基础设施,你要做的只是开发个客户端,不难。如果要自己搭基础设施就比较复杂了。
    ixcode
        46
    ixcode  
       4 天前
    你忘了那个移动互联网最著名的 release note (之一)了吗:“这一次,我们重新定义了对讲机”
    satanandroid
        47
    satanandroid  
       4 天前
    接入语音功能的聊天室就行了。
    你其实不是 1000 个人同时讲话,简化一下,是同时只有几个人拿麦克风可以同时讲话,其他人是听众才对。这样算下来就简单了。
    点击发言的时候自动抢麦,说完退麦克风.
    zeroonetwo
        48
    zeroonetwo  
       4 天前
    iOS 本身就有对讲机应用,你猜为什么国内看不到?
    HENQIGUAI
        49
    HENQIGUAI  
       4 天前
    腾...腾讯会议
    xiashali
        50
    xiashali  
       4 天前
    xiashali
        51
    xiashali  
       4 天前   ❤️ 2
    gscsnm
        52
    gscsnm  
       4 天前
    @MrdotX #17 支持。南山的界面我也很不喜欢。支持你搞个好看好用的
    location123
        53
    location123  
       4 天前
    看看需不需要注册 vivo 出的蓝牙对讲机必须得登录后才能使用
    inframe
        54
    inframe  
       4 天前
    题外话:去年的网红玩具:麦当劳对讲机,20 ¥一对
    bao3
        55
    bao3  
       4 天前
    楼主,做一个 Apple watch 的对讲吧,不要别的功能,就只有对讲,这会很受欢迎。
    mayli
        56
    mayli  
       4 天前   ❤️ 1
    最简单的话,就做成类似微信语音聊天+自动播放,这种传统的技术就能解决。
    再高级一点可以 实时,就 libopus >websocket > pub , 走服务器中转,基本上协议也都是通用的。
    再复杂一点就可以上 etc/p2p, 直接打洞点对点,缺点是多人点对点自己实现巨费劲,现成有库 https://github.com/anoek/webrtc-group-chat-example
    还好。

    或者直接抄开源的 https://www.google.com/amp/s/element.io/blog/introducing-native-matrix-voip-with-element-call/amp/ 然后自己剪裁
    jeasonzuo
        57
    jeasonzuo  
       3 天前
    @MrdotX 玩户外为什么用对讲机,因为在很多地方是没有网络信号的,基于网络的方案就行不通,在有网络且通讯距离超过对讲机无线电信号范围的时候会直接打电话或者微信,基于网络通信的对讲机小米已经做出实体产品了,但也替代不了传统对讲机
    Mystery0
        58
    Mystery0  
       3 天前
    TeamSpeak ?
    MrdotX
        59
    MrdotX  
    OP
       3 天前
    @jeasonzuo 自己随便搞搞,折腾折腾,估计适应的用户群体 也不多
    MrdotX
        60
    MrdotX  
    OP
       3 天前
    @mayli 我刚看了下,matrix 的服务器端商用也是 要钱的
    MrdotX
        61
    MrdotX  
    OP
       3 天前
    @bao3 好想法,我先把 app 端定了
    MrdotX
        62
    MrdotX  
    OP
       3 天前
    @ixcode 哈哈哈哈,我定义不了
    yubinphysic
        63
    yubinphysic  
       3 天前
    @MrdotX 我最近用 oc 做了一套音频传输,打算做成对讲机 app ,不过没做完,
    采用 opus 编码,2kb/s 就能传输 8000hz 的音频,效果还不错,需要可联系
    MrdotX
        64
    MrdotX  
    OP
       3 天前
    @yubinphysic 铁子加下我 instructor-xu
    yubinphysic
        65
    yubinphysic  
       3 天前
    @MrdotX ok
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3706 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 95ms · UTC 00:56 · PVG 08:56 · LAX 17:56 · JFK 20:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.