Android 说话时淡入淡出音乐

Android 说话时淡入淡出音乐,android,text-to-speech,background-music,Android,Text To Speech,Background Music,我有一个Android应用程序,它使用TTS文本到语音API。一切都很完美,但现在我想淡入/淡出,甚至停止音乐,以防当应用程序播放文本时,用户正在使用预先构建的音乐播放器播放音乐。现在,我认为音乐和TTS信息都是在同一个音乐流上播放的,而且很难理解语音信息 我尝试在不同的流上播放文本,比如AudioManager.stream\u通知。它确实停止了音乐,但在朗读文本时不会返回,因此我没有达到目标。我还没有找到任何东西,所以我希望这里有人能帮忙。谢谢 我终于找到了有效的方法。但并不完美。一个相当肮

我有一个Android应用程序,它使用TTS文本到语音API。一切都很完美,但现在我想淡入/淡出,甚至停止音乐,以防当应用程序播放文本时,用户正在使用预先构建的音乐播放器播放音乐。现在,我认为音乐和TTS信息都是在同一个音乐流上播放的,而且很难理解语音信息


我尝试在不同的流上播放文本,比如AudioManager.stream\u通知。它确实停止了音乐,但在朗读文本时不会返回,因此我没有达到目标。我还没有找到任何东西,所以我希望这里有人能帮忙。谢谢

我终于找到了有效的方法。但并不完美。一个相当肮脏的把戏。以防万一,它可以帮助某人:

这在API 8上通过AudioManager的requestAudioFocus和abandomAudioFocus方法固定


但是对于以前的版本,你可以试试这个。通过不同的流通道播放TTS,比如说流通知。然后,您只需要将音频焦点返回到流式音乐。你怎么能做到这一点?。向TTS发送静默字符串,但这次是通过流音乐。其效果将是:音乐停止,您的TTS信息被说出,最后您的音乐在语音提示后返回。不是很好,也不是什么值得骄傲的事,但是。。。如果有人知道另一种方式,我将不胜感激。

您能否使用文本Speech.onPatternanceCompletedListener和AudioManager.setStreamVolume来实现这一点?

如果您通过流音乐播放TTS消息,这与背景音乐相同,请不要认为这是可行的。如果您通过另一个流播放它,比如stream_通知,您仍然需要处理焦点返回。我只找到了一种方法来修复它,那就是在我之前的帖子中解释的肮脏黑客。我现在意识到这更多的是关于在发言后返回焦点,你是对的-如果没有requestAudioFocus,这看起来是不可能的。API 21中的新功能是playsilentutrance,int,java.lang.string在我的应用程序中,当播放音乐时,TTS不起作用!你能帮助我吗?