gpt4 book ai didi

android - 录制因通知、通话和屏幕超时而中断的音频

转载 作者:行者123 更新时间:2023-11-30 03:06:10 26 4
gpt4 key购买 nike

我目前正在开发一个 Android 项目,我们有一个录音机模块。

我正在使用 MediaRecorder,它按预期工作,但在一些恼人的情况下除外:

  • 当 Android 触发通知声音时,MediaRecorder 停止
  • 当接到电话时,即使拒绝来电,MediaRecorder 也会停止
  • 当屏幕熄灭时
    mRecorder = new MediaRecorder ();    mRecorder.setAudioSource (MediaRecorder.AudioSource.MIC);    mRecorder.setOutputFormat (MediaRecorder.OutputFormat.THREE_GPP);    mRecorder.setOutputFile (mFileName3GP);    mRecorder.setAudioEncoder (MediaRecorder.AudioEncoder.AAC);    mRecorder.setAudioEncodingBitRate (96000);    mRecorder.setAudioSamplingRate (48000);    mRecorder.start ();

我显然不希望录音在通话期间仍在运行,但在其他情况下我希望我的应用仍能正常执行录音。

我没有找到任何指向解决方案的信息。但是,我正在考虑唤醒锁(用于屏幕关闭)和 AudioFocus(用于通知和来电)。

有什么建议吗?

谢谢, Ant 1

最佳答案

如果此逻辑嵌入到 Acitivity 中,它将受到 Android 中常规生命周期更改的影响。即使您阻止了某些正常操作的发生,您也是在阻止/破坏设备的某些预期行为。也许这就是你想要的,但还有另一种方法。

您可以改用服务:

http://developer.android.com/guide/components/services.html

http://developer.android.com/reference/android/app/Service.html

http://www.vogella.com/tutorials/AndroidServices/article.html

这将在后台运行,因此不会受到正常生命周期中断的影响,但您仍然可以通过 BroadcastReceiversIntents 进行通信。

这需要一些额外的工作来处理两者之间的所有通信,并且可能需要某种通知让用户暂停/停止/重新开始录制,或者任何对您的情况有意义的通知。

更新:

在 Android 文档上发现这篇文章暗示您应该尝试暂停和开始录制以及暂停和开始 Activity :

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

也许这也能有所帮助。一条评论提到,当您调用/接听电话时,麦克风会停止输入。也许你正在尝试做的事情有内置的限制:

Pause and Resume Audio recording in Android

关于android - 录制因通知、通话和屏幕超时而中断的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21786314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com