电话响铃,收到短信等时如何暂停音乐?

时间:2011-07-03 12:31:58

标签: android audio

我正在尝试检测安卓的声音,并在发出噪音时暂停我的应用音乐(暂时或永久)。

此代码似乎无效(停止暂停音乐, p 写入日志),它永远不会被调用:

public class PollyPrissyPants extends Activity implements OnAudioFocusChangeListener {
    // Blah blah blah
    public void onAudioFocusChange(int mal) {
        p("--CHANGE!!!--" + mal);
        stop();
    }
    // Yada yada yada
}

我是否还必须在其他地方进行设置? @Override是否相关?

我没有尝试过PhoneStateListener,但如果可能的话,我不想单独处理电话,闹钟,通知,游戏等。我现在正在使用振动,但它作为解决方案很糟糕。如果我被叫,我必须回答,然后快速到我的应用程序暂停。

1 个答案:

答案 0 :(得分:2)

您必须使用OnAudioFocusListener注册AudioManager

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.requestAudioFocus(this,
      AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

this参数是对实现OnAudioFocusListener的类的引用。