0

我开发了一个录音机,它在前台和后台都能完美运行。但是当我在后台运行录音机并启动另一个使用声音的应用程序时出现问题(如录像机、音乐播放器、视频播放器等)所以应用程序会崩溃。所以我想在录音机中添加一个功能,当使用麦克风或扬声器的其他应用程序(如录像机、音乐播放器、视频播放器等)在前台运行时,录音机会自动进入暂停状态。提前致谢.

如果您仍然不明白我的问题,请使用您的手机并播放音乐播放器,而不是回家。所以音乐播放器正在运行。然后打开另一个没有使用麦克风和扬声器的应用程序,所以音乐播放器仍在运行,但是当你打开另一个使用麦克风和扬声器的应用程序(如录像机、音乐播放器、视频播放器等)时音乐播放器将暂停。我想要这种类型的功能。提前谢谢

4

2 回答 2

1

最后大量搜索和谷歌搜索我得到了这个问题的答案。我正在使用 audiofocuschangelistener。代码在那里

AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {

        公共无效 onAudioFocusChange(int focusChange) {
            开关(焦点改变)
            {
            案例 AudioManager.AUDIOFOCUS_GAIN:
            案例 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:
            案例 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
                  //恢复你的活动
                   休息;
            案例 AudioManager.AUDIOFOCUS_LOSS:
            案例 AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
            案例 AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
                   ///暂停你的活动
                   休息;
            }

        }
    };      

并在 onCreate() 中执行此操作

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int 结果 = audioManager.requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
                如果(结果 == AudioManager.AUDIOFOCUS_REQUEST_GRANTED){
                    //开始你的活动
                }

有关更多信息,您可以点击以下链接

http://developer.android.com/training/managing-audio/audio-focus.html

于 2012-08-02T06:12:59.857 回答
0

据我从你的问题中了解到,当它不是前台应用程序时,你需要你的应用程序停止它正在做的任何事情(可能是录音?)。

您需要在主要活动中覆盖onPause方法,以便当您的活动进入后台(新活动出现)时,您可以停止记录器。

此外,当用户再次开始与您的应用程序交互时,您可以通过覆盖onResume方法来恢复您的活动任务。

于 2012-07-31T07:41:15.153 回答