问题
解决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