面试系列——播报SDK开发和总结概述

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试系列——播报SDK开发和总结概述相关的知识,希望对你有一定的参考价值。

播报能力SDK

基本能力概述

  • 支持TTS 引擎和 MediaPlayer 系统自定义多个引擎切换;
  • 支持按照优先级调度,支持打断 ,播报音量定义等;
  • 支持组合播报 各种类型内容播报;

项目思考和总结

  • 设计上 各种设计模式的引入 保证工程结构可扩展;
  • 后期维护上,通过埋点上报 ,监控播报热点失败case,比如说 音频模板上线存在问题,存在非标准音频文件;
  • 推动语音引擎团队优化TTS 控制逻辑,比如在一些场景下 出现语音模型加载异常,则通过重试逻辑或者降级手段保证播报可用性;
  • 一些热点设备,存在资源调度紧张 ,极端场景下提升播报线程调度器优先级,优化极端场景下 播报及时程度,例如车辆碰撞等场景的预警;

关于优先级的探讨

  • 无论是Thread.setPriority还是Process.setThreadPriority最终都会更新进程的nice值。
  • Thread.setPriority中的[MAX_PRIORITY,MIN_PRIORITY]对应了NICE值的[-8,19],可见* Process.java的setThreadPriority对线程的优先级划分得更加细。这就是为什么有人建议通过Process.setThreadPriority来设置线程的优先级的原因了,可以将优先级划分的是更加细一些。
  • 在调整线程的优先级的过程中,也会调整线程的cgroups。
  • 在没有明确设置的情况下,一个线程初始的优先级等于其parent的优先级。如果我们从UI线程来创建一个子线程的,那么这个子线程的优先级就等于UI线程的优先级。

以上是关于面试系列——播报SDK开发和总结概述的主要内容,如果未能解决你的问题,请参考以下文章

面试系列—— 虚拟偶像VR SDK开发和优化总结

面试系列——虚拟偶像VR SDK开发和优化总结

iOS音频开发系列-概述篇

App处于后台/被杀死的状态仍可进行语言播报的方案:本地离线合成音频+Service Extension免费方案

iOS15 消息推送语言播报修订版(处于后台/被杀死的状态仍可进行语言播报)

FFMpeg视频开发与应用基础五调用FFMpeg SDK封装音频和视频为视频文件