Cha*_*ana 3 android text-to-speech
在向TTS引擎发送请求时,有没有办法控制TTS引擎的音量?我可以在这里使用AudioManager吗?
谢谢.
use*_*782 11
你可以在TTS speak()方法中得到这个,但只能从API级别11开始.
为了保持向后兼容性,您可以定位更高的api级别(使用更低的min sdk)并使用"@TargetApi(api_level)"装饰器以及sdk版本检查.
/** speak the single word, at a lower volume if possible */
protected void speakOneWord(String text) {
int apiVer = android.os.Build.VERSION.SDK_INT;
if (apiVer >= 11){
speakApi13(text);
} else {
// compatibility mode
HashMap<String, String> params = new HashMap<String, String>();
mTts.speak(text, TextToSpeech.QUEUE_ADD, params);
}
}
/** speak at a lower volume, for platform >= 13 */
@TargetApi(13)
protected void speakApi13(String text) {
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_VOLUME, "0.1");
mTts.speak(text, TextToSpeech.QUEUE_ADD, params);
}
Run Code Online (Sandbox Code Playgroud)
speak() 方法现在可以控制 TTS 音量
在 API 级别 21 中添加
int speak (CharSequence text,
int queueMode,
Bundle: KEY_PARAM_VOLUME;...,
String utteranceId)
Run Code Online (Sandbox Code Playgroud)
参数KEY_PARAM_VOLUME,用于指定相对于朗读文本时使用的当前流类型音量的语音音量的键。
音量被指定为范围从 0 到 1 的浮点数,其中 0 是静音,1 是最大音量(默认行为)。
是的,正如您的问题所问,您可以使用AudioManager来处理 TTS 音频。
如果您想在代码中设置音量,您需要使用getStreamVolume()和setStreamVolume()方法。
如果您想让用户控制音量(这可能取决于您的程序如何/何时设置音量),此问题指出您必须setVolumeControlStream()在 期间调用OnCreate()。
编辑:不,您无法在 TTS 引擎的方法(即Speak()方法)中控制音量。
| 归档时间: |
|
| 查看次数: |
11156 次 |
| 最近记录: |