2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Android 新增 Telecom 库 jetpack,简化音频 / 视频通话应用开发

  • 2023-12-07
    北京
  • 本文字数:970 字

    阅读完需:约 3 分钟

Android 新增 Telecom 库 jetpack,简化音频/视频通话应用开发

Android 新增 Telecom 库 jetpack。该库目前为 Alpha 版本,旨在简化音频及视频通话应用的开发。它为 Android 开发人员提供了多个 API,支持应答 / 拒绝、音频路由等常见功能。


首先,新库会负责声明它使用哪些前台服务。这意味着开发者不需要显式遵守 Android 14 中新引入的的隐私要求。该库还可以确保用户离开应用时通话不会中断,而这对于开发者来说是透明的。


该 Telecom 库还为智能手表提供了一个 API,用于处理用户操作,如接听、拒绝、挂断和静音呼叫。该 API 可以流畅地在手表上显示与呼叫相关的信息,并且,当用户正在进行通话而又有另一个呼叫进入时,可以为用户保持当前呼叫。


新库提供的另一个主要功能是音频路由,因此,使用它的任何应用程序都不需要使用音频管理器来跟踪设备的音频状态及获取可用音频设备的列表等。该库可以列出所有可用的去向 / 来自蓝牙音频设备的流式音频端点。


该 Telecom 库引入了一个新的 CallsManager 类,取代了以前非 jetpack 库中提供的 ConnectionService 类。如果开发人员想要利用新类所带来的好处,就需要完成一项特定的迁移。


从 ConnectionService 迁移到 CallManager 非常简单,但也不是改下命名空间那么简单。你可以认为,CallManager 取代的是 ConnectionService ,而 CallControlScope 取代的是 ConnectionService.


下面的代码片段展示了如何添加一个具有给定属性的呼叫:


val attributes = CallAttributesCompat(        displayName = displayName,               address = address,       direction = CallAttributesCompat.DIRECTION_INCOMING,       callType = CallAttributesCompat.CALL_TYPE_AUDIO_CALL,       callCapabilities = (CallAttributesCompat.SUPPORTS_SET_INACTIVE                or CallAttributesCompat.SUPPORTS_STREAM                                or CallAttributesCompat.SUPPORTS_TRANSFER), )callsManager.addCall(        attributes      ) {                 // Call control scope 
}
复制代码


谷歌表示,在未来几个月,这个库会增加许多新功能,并且向后兼容至 Android O(API level 26)。如果你对使用它创建一个 Android VoIP 应用感兴趣,那么最好从谷歌的官方示例应用入手,它向开发者展示了如何使用各种 API。


原文链接:

https://www.infoq.com/news/2023/11/android-jetpack-telecom-library/


2023-12-07 08:006240

评论

发布
暂无评论
发现更多内容

【VueRouter 源码学习】第三篇 - 路由插件 install 的实现

Brave

源码 vue-router 9月日更

如何判断一个项目是否值得投资?

石云升

9月日更

架构作业 - 模块二

Leo Zhao

架构训练营

学习心得 - 架构训练营 - 第二课

Fm

博客升级之在线代码编辑器

devpoint

编辑器 9月日更

10个步骤成为K8S云原生工程师

云原生

Kubernetes 云原生 K8S工程师

架构实战课程 模块二作业

Frank

微信朋友圈的高性能复杂度

michael

#架构实战营

0基础架构入门 - 2(架构设计复杂度模型和应对之道)

felix

架构实战营 0基础架构入门

模块二作业

TIEDPAG

Vue进阶(九十二):应用 postMessage 实现窗口通信

No Silver Bullet

Vue 9月日更

架构训练营模块二作业

guangbao

【Flutter 专题】56 图解自定义 BubbleWidget 气泡插件

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

架构实战营模块二

WolvesLeader

「架构实战营」

《计算机网络》读后感

codists

架构实战营-模块二作业

南山先生

架构训练营

在用户故事中应该包含多细的细节?(译)——来自Mike Cohn

Bruce Talk

敏捷开发 译文 Agile User Story Product Owner

大开眼界!数字人民币原来还有这些新玩法

CECBC

微信朋友圈复杂度分析

Nico

极客时间-架构实战营2期-模块二作业

Dylan TANG

极客时间 第二周作业 极客时间架构师二期 架构实战营

LeetCode刷题977-简单-有序数组的平方

ベ布小禅

9月日更

微信朋友圈架构设计

白开水又一杯

#架构实战营

大厂offer任你挑!覆盖面试中近98%Java高频面试手册

Java 编程 架构 面试 大厂

背完这套Java面试八股文,自动解锁面试牛逼症被动技能

北游学Java

Java 数据库 面试 算法 开发框架

微信朋友圈高性能复杂度分析

一叶知秋

架构实战营

黑灯瞎火搞什么?搞智造!

脑极体

上线几小时下载量破百万!无价的这份阿里并发编程图册就这么强势

Java 编程 架构 面试 程序人生

【LeetCode】二叉树的深度Java题解

Albert

算法 LeetCode 9月日更

中国、女性与自然的鸣奏曲

脑极体

网络攻防学习笔记 Day127

穿过生命散发芬芳

9月日更 办公网安全

架构实战营 模块七作业

孫影

架构实战营 #架构实战营

Android 新增 Telecom 库 jetpack,简化音频/视频通话应用开发_Android/iOS_Sergio De Simone_InfoQ精选文章