当前位置: 首页 > news >正文

Android 息屏录音

问题

解决Android录音的息屏之后无法录制声音的问题,看日志发现,录音程序并没有中断,但是录制到的数据均是byte为0的数据,即空数据。

测试机为Android 13系统

废话

网上一搜一大堆,ai也是一问也回答得头头是道,源码给的也能录音,就是一息屏就哑火,网上找了好多源码,大都是Android 10以下系统的。

最后终于发现,网上的代码没错,ai也没错,就他么在AndroidManifest.xml中漏了最关键的一句:android:foregroundServiceType="microphone"

实现

具体实现就略过了,这里仅说个大概步骤:

1、起一个服务RecordService

2、在AndroidManifest.xml注册这个RecordService

        <service android:name="com.example.record.RecordService"android:foregroundServiceType="microphone"android:exported="false"tools:ignore="ForegroundServicePermission" />

最关键就是这一句android:foregroundServiceType="microphone",之前就是漏了这一句,死活不行。

3、在这个RecordService中使用startForeground方法将这个服务设置成前台服务。

4、在这个RecordService中实现录音逻辑。

参考

前台服务传送门:

服务概览  |  Background work  |  Android Developers

录音传送门:

https://blog.csdn.net/qq_33601179/article/details/89376082?spm=1001.2014.3001.5501

相关文章:

  • yolact导出onnx
  • 如何通过数据管理优化储能系统的运行效率?
  • Android Studio SQLite Manage
  • Java集合框架--LIST,ArrayList,LinkedList
  • 笔记-系统规划与管理师-案例题-2022年-IT服务部署实施
  • 第三十一章:docker如何部署Nexus
  • 搭建Windows环境下的Redis服务与TinyRDM客户端
  • libcurl 库curl_easy_setopt()函数CURLOPT_WRITEDATA和CURLOPT_BUFFERSIZE选项
  • git 落后主分支提交
  • 2.2 python基础知识复习——python面向对象的原理和代码详解
  • web 3D可视化技术
  • 【TB作品】TM1637芯片数码管,PIC16单片机驱动显示,Proteus仿真
  • leetcode860:柠檬水找零
  • 基于51单片机设计的简易直流电机调测速系统(可用在普中开发板)——程序源码设计文档演示视频等(文末工程资料下载)
  • .NET_WebForm_layui控件使用及与webform联合使用
  • 《深入 React 技术栈》
  • 2017届校招提前批面试回顾
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript的使用你知道几种?(上)
  • JS笔记四:作用域、变量(函数)提升
  • Promise初体验
  • React-Native - 收藏集 - 掘金
  • Redis的resp协议
  • Tornado学习笔记(1)
  • WebSocket使用
  • 阿里云Kubernetes容器服务上体验Knative
  • 大主子表关联的性能优化方法
  • 给初学者:JavaScript 中数组操作注意点
  • 记一次和乔布斯合作最难忘的经历
  • 开发基于以太坊智能合约的DApp
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 深入浅出Node.js
  • 交换综合实验一
  • 数据可视化之下发图实践
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (回溯) LeetCode 40. 组合总和II
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (小白学Java)Java简介和基本配置
  • *1 计算机基础和操作系统基础及几大协议
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net的socket示例