我正在尝试检测安卓的声音,并在发出噪音时暂停我的应用音乐(暂时或永久)。
此代码似乎无效(停止暂停音乐, 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,但如果可能的话,我不想单独处理电话,闹钟,通知,游戏等。我现在正在使用振动,但它作为解决方案很糟糕。如果我被叫,我必须回答,然后快速到我的应用程序暂停。
答案 0 :(得分:2)
您必须使用OnAudioFocusListener
注册AudioManager
:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.requestAudioFocus(this,
AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
this
参数是对实现OnAudioFocusListener
的类的引用。