科大讯飞 语音播放

package com.itheima24.know.recognizer;
/**
 * 语音播放接口
 * @author lenovo
 *
 */
public interface VoicePlayer {
	/**
	 * 不带UI的播放
	 * @param text
	 */
	public void play(String text);
	/**
	 * 带UI的播放
	 * @param text
	 */
	public void playUI(String text);
	/**
	 * 暂停
	 */
	public void pause();
	/**
	 * 恢复
	 */
	public void resume();
	/**
	 * 销毁
	 */
	public void destory();
	/**
	 * 取消
	 */
	public void cancel();
	
}


实现类

package com.itheima24.know.recognizer;

import android.content.Context;
import android.widget.Toast;

import com.iflytek.speech.SpeechError;
import com.iflytek.speech.SynthesizerPlayer;
import com.iflytek.speech.SynthesizerPlayerListener;
import com.iflytek.ui.SynthesizerDialog;
import com.itheima24.know.utils.Constants;

public class VoicePlayerImpl implements VoicePlayer {
	private SynthesizerDialog dialog;
	private SynthesizerPlayer player;
	private Context context;
	public VoicePlayerImpl(Context context){
		this.context = context;
		String appid = "appid="+ Constants.XUNFEI_APPID +"";
		dialog = new SynthesizerDialog(context,appid);
		player = SynthesizerPlayer.createSynthesizerPlayer(context,appid);
	}
	@Override
	public void play(String text) {
		//设置播放的速度
		player.setSpeed(50);
		//设置播放的音量
		player.setVolume(100);
		//设置背景音
		player.setBackgroundSound(null);
		//设置播报的角色
		player.setVoiceName("xiaoyan");
		player.playText(text, null,new SynthesizerPlayerListener() {
			/**
			 * 播报恢复
			 */
			@Override
			public void onPlayResumed() {
				
			}
			/**
			 * 当前播放百分比
			 * @param arg0
			 * @param arg1
			 * @param arg2
			 */
			@Override
			public void onPlayPercent(int arg0, int arg1, int arg2) {
				
			}
			/**
			 * 播报暂停
			 */
			@Override
			public void onPlayPaused() {
				
			}
			/**
			 * 开始播报
			 */
			@Override
			public void onPlayBegin() {
				Toast.makeText(context, "开始播报了 ... ", 0).show();
			}
			/**
			 * 播报结束
			 */
			@Override
			public void onEnd(SpeechError arg0) {
			}
			/**
			 * 当前缓存的百分比
			 * @param arg0
			 * @param arg1
			 * @param arg2
			 */
			@Override
			public void onBufferPercent(int arg0, int arg1, int arg2) {
				
			}
		});
	}

	@Override
	public void playUI(String text) {
		//设置播放的速度
		dialog.setSpeed(50);
		//设置播放的音量
		dialog.setVolume(50);
		//设置背景音
		dialog.setBackgroundSound(null);
		//设置播报的角色
		dialog.setVoiceName("vinn");
		dialog.setText(text, null);//播放的文本 null是一些配置参数 没有传值
		dialog.show();//将当前对话框显示
	}

	@Override
	public void pause() {
		dialog.pause();
		player.pause();
	}

	@Override
	public void resume() {
		dialog.resume();
		player.resume();
	}

	@Override
	public void destory() {
		dialog.destory();
		player.destory();
	}

	@Override
	public void cancel() {
		dialog.cancel();
		player.cancel();
	}

}


调用

/**
		 * 播放语音
		 */
		player.play(text);


权限

<!-- 读取网络状态所需权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
	<!-- 科大讯飞语音所需的权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />


 

包名:

Msc.jar

libmsc.so

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值