5

我正在为 Android 开发一个媒体播放器应用程序,我需要为此处理任何警报通知,并基于此我将暂停播放。当闹钟暂停或关闭时,我将恢复播放。

我在 Google 上搜索了很多关于警报处理的信息,但我发现了通过代码启用警报通知、设置意图然后处理它的方法。但是,我无法找到仅处理警报通知部分的位置。我不需要设置警报,它可以由用户设置,我不需要以编程方式。我所需要的只是处理那个通知。

对此有什么想法会非常有用吗?

谢谢,阿希什

4

3 回答 3

6

嗨,阿希什·瓦希什塔,

请纠正我,但是当任何其他应用程序(即使是闹钟)被激活时,AFAIK 肯定会在后台运行。所以我想你可以覆盖OnPauseandOnResume函数来放置你的代码。就贪睡或其他事情而言,它们都会导致警报活动被破坏(或暂停,对此不太了解),您的活动将被恢复。所以这不会是你关心的问题!

希望这可以帮助...

于 2010-06-17T05:27:13.963 回答
1

AFAIK,您无法收到有关闹钟应用程序功能的通知,就像您收到有关任何其他第三方闹钟的通知一样。

请注意AlarmManager- 您可能正在阅读的内容 - 与闹钟应用程序不同。

对不起!

于 2010-04-26T18:05:15.807 回答
1

我在开发媒体播放器时遇到了类似的情况。我的解决方案是使用 AudioManager 的OnAudioFocusChangeListener.

您像这样在类中实现侦听器

public class VideoPlayerHelper implements AudioManager.OnAudioFocusChangeListener {

然后你覆盖onAudioFocusChange

@Override
public void onAudioFocusChange(int focusChange) {
    switch (focusChange) {

        //Just fall through by omitting break
        case AudioManager.AUDIOFOCUS_LOSS:
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
            LogUtil.log(LogUtil.DEBUG, TAG, "AUDIOFOCUS_LOSS or AUDIOFOCUS_LOSS_TRANSIENT"); //Custom logging class
            if (isPlaying()) {
                pause();
                mAudioManager.abandonAudioFocus(VideoPlayerHelper.this);
            }
            break;
        case AudioManager.AUDIOFOCUS_GAIN:
            LogUtil.log(LogUtil.DEBUG, TAG, "AUDIOFOCUS_GAIN"); //Custom logging class
            break;
        default:
            break;
    }
}

这里的关键是AudioManager.AUDIOFOCUS_LOSS_TRANSIENT。这是当闹钟响起时听众不断收到的代码(在 Note 5 上)。所以我只是通过暂停媒体播放器并放开音频焦点来处理AudioManager.AUDIOFOCUS_LOSS_TRANSIENT相同的事情。AudioManager.AUDIOFOCUS_LOSS

当我们设置媒体播放器时,我在添加数据源之前添加了这一行

player.setAudioStreamType(AudioManager.STREAM_MUSIC);

确保您的启动媒体播放器的代码中也有这一行(我在启动代码和onResume代码中都有它,以防应用程序在后台时警报响起)。

mAudioManager.requestAudioFocus(VideoPlayerHelper.this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

当您在关闭闹钟后点击播放按钮时,该行可帮助您恢复音频焦点。

完成媒体播放器后,您还应该放开音频焦点。我把这行代码放在onStopandonDetach方法中。

mAudioManager.abandonAudioFocus(VideoPlayerHelper.this);

它没有您想象的那么多设置,它允许您在引入意外音频时调整您的媒体播放器(例如闹钟或计时器响起)。

于 2015-10-05T19:32:18.870 回答