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

相关推荐
王家视频教程图书馆19 小时前
android java播放器依赖
android
robotx1 天前
安卓16屏保中的启用时机,选项不正确
android
JulyYu1 天前
【Android】第三方库依赖引发的异常情况排查
android·android studio
QING6181 天前
简单说下Kotlin 作用域函数中 apply 和 also 为什么不能空安全调用?
android·kotlin·android jetpack
城东米粉儿1 天前
着色器 (Shader) 的基本概念和 GLSL 语法 笔记
android
儿歌八万首1 天前
Jetpack Compose :封装 MVVM 框架
android·kotlin·compose
2501_915921431 天前
iOS App 中 SSL Pinning 场景下代理抓包失效的原因
android·网络协议·ios·小程序·uni-app·iphone·ssl
壮哥_icon1 天前
Android 系统级 USB 存储检测的工程化实现(抗 ROM、抗广播丢失)
android·android-studio·android系统
Junerver1 天前
积极拥抱AI,ComposeHooks让你更方便地使用AI
android·前端