Android MediaPlayer TTS问题

时间:2011-02-01 14:05:03

标签: android media-player text-to-speech

我使用MediaPlayer播放音频文件,使用TTS-Engine输出文本。不,我想将两种类型的音量设置为相同的水平。 我试图设置MediaPlayers setVolume-Method和更通用的setVolumeControlStream但不费力。有没有人为这个问题提出想法或示例代码?

Fesp

1 个答案:

答案 0 :(得分:0)

我不确定这会有效,但您是否尝试使用AudioManager类检索当前音量,然后将该音量传递到TTS api中。这就是我接近类似场景的方式。

我使用单例模式创建了自己的自定义Volume Manager(负责MediaPlayer / TTS /等之间的卷管理)。我使用以下方法检索MediaPlayer卷。

AudioManager audioManager = (AudioManager) Context.getSystemService(Context.AUDIO_SERVICE);
int volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

此外,当TTS打开时,您可能必须获取AudioManager的新实例,因为您将确保音频保持TTS而不是MediaPlayer。对不起,如果这不起作用,只需快速思考。

然后当您打开TTS时,可以使用AudioManager api再次手动更改音量。

audioManager.setStreamVolume(streamType, index, flags);

当用户更改TTS上的卷时,Volume Manager会拦截它并执行自己的进程。我知道这不是一个理想的解决方案,但我用它作为快速解决方法。设置音量时,我必须得到一个新的AudioManager实例,以确保我拥有TTS而不是MediaPlayer。对不起,如果这不起作用,只需快速思考。