我目前正在开发一个需要使用 TTS 的应用程序。问题是如果用户在听音乐,你就听不到 TTS。我已经想通了,我可以用它AudioFocus
来暂时集中注意力,然后释放它。获得焦点会暂停潘多拉(我目前正在尝试使用的应用程序),但释放它不会做任何事情。
我知道当打电话时,它可以暂停潘多拉和其他一切,但我在控制它的源代码中找不到任何东西。
有没有其他方法可以恢复潘多拉或任何其他外部音乐播放器?
我用它来暂停音乐。
if(am.isMusicActive()) {
int result = am.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
if(result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED){
}
}
并在onDestroy
am.abandonAudioFocus(this);
我试图通过以下部分恢复它:
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "play");
this.sendBroadcast(i);
和
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendOrderedBroadcast(downIntent, null);
第一个播放本地音乐应用程序(原因很明显,但我认为值得一试)。第二个什么都不做。我也用它来尝试暂停音乐,但效果不佳。