当手机处于空闲屏幕关闭状态时识别语音



即使手机空闲或屏幕关闭,我也能制作一个识别语音的service吗?我的意思是,即使在空闲状态下,也可以打电话听用户说什么。

这是关于如何实现这一点的整个程序。

http://developer.android.com/guide/topics/media/audio-capture.html

这展示了如何录制音频,同样的实现也可以用于收听音频。

此外,关于什么是服务的DEV指南。

来自developer.android.com

服务是在后台运行以执行的组件长时间运行的操作或为远程进程执行工作。A.服务不提供用户界面。例如,一项服务当用户在不同的环境中时,可能会在后台播放音乐应用程序,或者它可以在不阻塞的情况下通过网络获取数据用户与活动的交互。另一个组件,例如活动,可以启动服务并让它按顺序运行或绑定到它与之交互。服务被实现为服务的子类您可以在《服务开发人员指南》中了解更多信息。

这将为您提供所需的所有信息:http://developer.android.com/guide/topics/fundamentals/services.html

您还必须在服务中获得唤醒锁,以防止手机睡眠,从而录制音频。你可能会坚持PARTIAL_WAKELOCK,因为你不需要打开屏幕。

您还需要唤醒锁定权限。

然而,对于我能想到的任何实现方式来说,保持设备活动并持续处理声音都是不明智的。

对于大多数情况来说,这是一个可怕的想法,因为它会在几个小时内耗尽你的电池电量(最高)。

我一直在努力获得一个背景录音机(当屏幕关闭时),这些是我找到的选项:

  1. 完全唤醒可以让你继续录音,但保持屏幕打开。(不理想)

  2. 部分唤醒会很好,但它实际上不起作用——至少在我的手机上是这样。(cpu保持活动状态,但麦克风的数据在几分钟后变为0)

  3. 使用前台服务,该服务启动记录音频的后台线程。这是最好的,因为它可以让屏幕关闭,同时仍然无限期地录制。

有关示例,请参见此处:https://stackoverflow.com/a/57260468/2441655

最新更新