我目前正在开发一款需要使用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);
第一个播放播放原生音乐应用程序(这显然是为什么,但我认为值得一试)。第二个什么也没做。我也用它来尝试暂停音乐,但效果也不好。