/**
- 播报人
*/
public static final String VOICE_NAME = “voiceName”;
/**
- 语速
*/
public static final String SPEED = “speed”;
/**
- 音调
*/
public static final String PITCH = “pitch”;
/**
- 音量
*/
public static final String VOLUME = “volume”;
下面写工具类,工具类里面要完成SDK的初始化配置,音频文字的合成,然后是播放。在com.llw.goodweather下的utils包下新增一个SpeechUtil类,代码如下:
package com.llw.goodweather.utils;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.os.MemoryFile;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.BackgroundColorSpan;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechEvent;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SynthesizerListener;
import com.iflytek.cloud.msc.util.FileUtil;
import com.iflytek.cloud.msc.util.log.DebugLog;
import java.util.Vector;
/**
-
语音工具类
-
@author llw
*/
public class SpeechUtil {
private static final String TAG = “SpeechUtil”;
private static Context mContext;
// 语音合成对象
public static SpeechSynthesizer mTts;
//播放的文字
private static String defaultText = “富强、明主、文明、和谐、自由、平等、公正、法制、爱国、敬业、诚信、友善。”;
// 引擎类型
private static String mEngineType = SpeechConstant.TYPE_CLOUD;
private static Vector<byte[]> container = new Vector<>();
//内存文件
private static MemoryFile memoryFile;
//总大小
public static volatile long mTotalSize = 0;
// 默认发音人
private static String voicer = “xiaoyan”;
//语速
private static String speedValue = “50”;
//音调
private static String pitchValue = “50”;
//音量
private static String volumeValue = “50”;
private static TextView tvState;
/**
- 初始化监听。
*/
private static InitListener mTtsInitListener = code -> {
Log.i(TAG, "InitListener init() code = " + code);
if (code != ErrorCode.SUCCESS) {
Log.i(TAG, “初始化失败,错误码:” + code);
} else {
Log.i(TAG, “初始化成功”);
}
};
/**
-
初始化
-
@param context
*/
public static void init(Context context) {
mContext = context;
// 初始化合成对象
mTts = SpeechSynthesizer.createSynthesizer(mContext, mTtsInitListener);
}
/**
- 合成回调监听。
*/
private static SynthesizerListener mTtsListener = new SynthesizerListener() {
//开始播放
@Override
public void onSpeakBegin() {
Log.i(TAG, “开始播放”);
}
//暂停播放
@Override
public void onSpeakPaused() {
Log.i(TAG, “暂停播放”);
}
//继续播放
@Override
public void onSpeakResumed() {
Log.i(TAG, “继续播放”);
}
//合成进度
@Override
public void onBufferProgress(int percent, int beginPos, int endPos, String info) {
Log.i(TAG, “合成进度:” + percent + “%”);
}
//播放进度
@Override
public void onSpeakProgress(int percent, int beginPos, int endPos) {
// 播放进度
Log.i(TAG, “播放进度:” + percent + “%”);
tvState.setText(“播报中”);<