/VoiceAnnouncements

Android实现收款成功金额的语音播报功能(Nice tone)

Primary LanguageJava

VoiceAnnouncements

Android实现收款成功金额的语音播报功能(Nice tone) 推荐文章:
Android实现购物车页面及购物车效果(点击动画)
Android自定义收银键盘(原创)

a1.jpg

Gradle依赖 -

1.最app外层的build.gradle 添加代码:

allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

2.在app 的build.gradle中添加:

	dependencies {
	        compile 'com.github.javaexception:VoiceAnnouncements:v1.0'
	}

使用方法 -

```
VoiceUtils.with(this).Play("1111",true);
```
如果是true播报语音为"收款成功+收款金额",如果是false只播报收款金额.<br>

播报语速的调控问题,现在因为只能支持Android6.0以上的,所以代码我没添加,等解决后一起更新.

附上一些代码:

```
public  void PlaySoundList( final int soundindex, final String soundString, final int soundcount){
       boolean createState=false;
    if(mediaPlayer==null) {
        mediaPlayer = null;
    }
    System.out.println("加载音频["+soundindex+"]");
    mediaPlayer = createSound(soundindex,soundString);
    createState=true;

    if(createState==true)
        System.out.println("加载音频成功["+soundindex+"]");
    else
        System.out.println("加载音频失败["+soundindex+"]");

    //播放完成触发此事件
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.release();//释放音频资源
            int newsoundindex =soundindex;
            System.out.println("释放资源[" +soundindex+"]");
            if(soundindex<soundcount) {
                newsoundindex=newsoundindex+1;
                PlaySoundList(newsoundindex, soundString,soundcount);
            }

        }
    });
    try {
        //在播放音频资源之前,必须调用Prepare方法完成些准备工作
        if(createState)
            mediaPlayer.prepare();
        else
            mediaPlayer.prepare();
        //开始播放音频
        mediaPlayer.start();
        System.out.println("播放音频["+soundindex+"]");
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


public  MediaPlayer createSound(int soundIndex, String soundString){
    MediaPlayer mp=null;
    String soundChar = soundString.substring(soundIndex-1,soundIndex);

    switch (soundChar)
    {
        case "零":
            mp=MediaPlayer.create(mContext,R.raw.sound0);
            break;
        case "壹":
            mp=MediaPlayer.create(mContext,R.raw.sound1);
            break;
        case "贰":
            mp=MediaPlayer.create(mContext,R.raw.sound2);
            break;
        case "叁":
            mp=MediaPlayer.create(mContext,R.raw.sound3);
            break;
        case "肆":
            mp=MediaPlayer.create(mContext,R.raw.sound4);
            break;
        case "伍":
            mp=MediaPlayer.create(mContext,R.raw.sound5);
            break;
        case "陆":
            mp=MediaPlayer.create(mContext,R.raw.sound6);
            break;
        case "柒":
            mp=MediaPlayer.create(mContext,R.raw.sound7);
            break;
        case "捌":
            mp=MediaPlayer.create(mContext,R.raw.sound8);
            break;
        case "玖":
            mp=MediaPlayer.create(mContext,R.raw.sound9);
            break;
        case "拾":
            mp=MediaPlayer.create(mContext,R.raw.soundshi);
            break;
        case "佰":
            mp=MediaPlayer.create(mContext,R.raw.soundbai);
            break;
        case "仟":
            mp=MediaPlayer.create(mContext,R.raw.soundqian);
            break;
        case "角":
            mp=MediaPlayer.create(mContext,R.raw.soundjiao);
            break;
        case "分":
            mp=MediaPlayer.create(mContext,R.raw.soundfen);
            break;
        case "元":
            mp=MediaPlayer.create(mContext,R.raw.soundyuan);
            break;
        case "整":
            mp=MediaPlayer.create(mContext,R.raw.soundzheng);
            break;
        case "万":
            mp=MediaPlayer.create(mContext,R.raw.soundwan);
            break;
        case "$":
            mp=MediaPlayer.create(mContext,R.raw.soundsuccess);
            break;
    }
    mp.stop();
    return mp;
}  

简书地址

我的公众号如下:

333.jpg

a2.jpg