将推送到手机的消息转换成语音自动播放的实现(如支付到账语音通知)

如何将推送到手机的消息通知转换成语音自动播放出来?典型的应用场景是,顾客支付成功后,收银员的手机自动播放支付到账语音。

要实现这个需求,一是需要语音合成API,可使用百度的语音合成API,另外就是手机收到消息时,调用完百度语音合成后,将音频用MediaPlayer播放出来。

我现在以友盟的消息推送接口为例,从友盟网站下载安卓版消息推送Demo,找到PushExample例子中的

MyApplication类,找到 
public Notification getNotification(Context context, UMessage msg),在{后面增加代码:
 
  
 
  
AudioManager  audioMgr  = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioMgr.setStreamVolume(AudioManager.STREAM_MUSIC, 50,  AudioManager.FLAG_PLAY_SOUND);//设置音量
String path = "http://tsn.baidu.com/text2audio?tex="+msg.text+"&lan=zh&tok=TOKEN&ctp=1&cuid=qwsdasdcgyhuh";/
Uri uri = Uri.parse(path);

MediaPlayer player = new MediaPlayer();

 
 try {
     player.setDataSource(context, uri);
     player.prepare();
     player.start();
 }
 catch(Exception ex)
 {}

 player.start();
说明:path参数中的TOKEN需要调用百度API生成。
msg.text是服务器端推送过来的消息,传到百度语音合成接口中,可将文字转换为语音流播放出来。
添加了以上代码后,在友盟服务器上使用测试工具即可体验消息推送自动播放语音的效果(关于DeviceToken和密钥的配置略)。
我相信上面的代码一定会给想实现消息推送自动播放语音及想实现支付到账语音通知的朋友以很大的帮助。
 
 

你可能感兴趣的:(Java)