Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当电话铃响、收到短信等时,如何暂停音乐?_Android_Audio - Fatal编程技术网

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

Android 当电话铃响、收到短信等时,如何暂停音乐?,android,audio,Android,Audio,我正在尝试检测android声音,并在它们发出噪音时暂停应用程序的音乐(暂时或永久) 此代码似乎不起任何作用(stop暂停音乐,p写入日志),但从未调用: public class PollyPrissyPants extends Activity implements OnAudioFocusChangeListener { // Blah blah blah public void onAudioFocusChange(int mal) { p("--CHAN

我正在尝试检测android声音,并在它们发出噪音时暂停应用程序的音乐(暂时或永久)

此代码似乎不起任何作用(stop暂停音乐,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,但如果可能的话,我不想把电话、闹钟、通知、游戏等分开处理。我现在正在使用振动,但它作为一个解决方案很糟糕。如果我接到电话,我必须接听,然后快速进入我的应用程序并暂停。

您必须使用
AudioFocusListener
AudioManager注册

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

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

Awesome的可能重复!工作完美:)这是否意味着我应该在启动/停止音乐(如更改请求)时这样做,至少对其他应用程序礼貌一点?创建活动或服务时,你应该只需要请求音频焦点一次。但这是一个好主意,因此没有两个应用程序试图同时播放音乐。