在做极光推送的时候如何能接受推送的内容,并且使用讯飞语音将内容读出.

small小小世界world 2017-12-12 03:35:10
最近在做极光推送,接收到内容之后将内容用讯飞语音将内容读出来,通过以下代码已经实现了推送过来实现语音播报的功能:
JPushReciever广播,接受极光推过来的消息用:
public class JPushReciever extends BroadcastReceiver {

private boolean flag = true;

@Override
public void onReceive(Context context, Intent intent) {
try {
Bundle bundle = intent.getExtras();
String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
final String content = (String) bundle.get(JPushInterface.EXTRA_ALERT);
AudioUtils.getInstance().init(context);
AudioUtils.getInstance().speakText(content);
Log.e("sanshao",content);
}catch (Exception e){
Log.e("",e.toString());
}
}
}
AudioUtils工具类实现语音播报用的工具类
public class AudioUtils {

private static AudioUtils audioUtils;

private SpeechSynthesizer mySynthesizer;

private AudioUtils() {
}

/**
* 描述:单例
*/
public static AudioUtils getInstance() {
if (audioUtils == null) {
synchronized (AudioUtils.class) {
if (audioUtils == null) {
audioUtils = new AudioUtils();
}
}
}
return audioUtils;
}

private InitListener myInitListener = new InitListener() {
@Override
public void onInit(int code) {
Log.d("mySynthesiezer:", "InitListener init() code = " + code);
}
};


/**
* 描述:初始化语音配置
*/
public void init(Context context) {
//处理语音合成关键类
mySynthesizer = SpeechSynthesizer.createSynthesizer(context, myInitListener);
//设置发音人
mySynthesizer.setParameter(SpeechConstant.VOICE_NAME, "yifeng");
//设置音调
mySynthesizer.setParameter(SpeechConstant.PITCH, "50");
//设置音量
mySynthesizer.setParameter(SpeechConstant.VOLUME, "100");

}

/**
* 描述:根据传入的文本转换音频并播放
*/
public void speakText(final String content) {
int code = mySynthesizer.startSpeaking(content, new SynthesizerListener() {
//开始播放
@Override
public void onSpeakBegin() {
}

//缓冲进度回调
@Override
public void onBufferProgress(int i, int i1, int i2, String s) {

}

//暂停播放
@Override
public void onSpeakPaused() {

}

//恢复播放回调接口
@Override
public void onSpeakResumed() {

}

//播放进度回调
@Override
public void onSpeakProgress(int i, int i1, int i2) {

}

//会话结束回调接口
@Override
public void onCompleted(SpeechError speechError) {

}

@Override
public void onEvent(int i, int i1, int i2, Bundle bundle) {

}
});
}
}
可是通过以上方法播报语音是已经实现了,可是之后再去点击通知栏内的推送的时候,语音播报会再次响起,而且是打不开APP的,我试着在广播中试着去打开App,这样的话再推送刚一推过来的时候会打开App,点击通知栏的时候依然会打开App,希望能够有大神对以上问题帮帮我,感谢!
...全文
460 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 Jing丶无双的回复:
可是通过以上方法播报语音是已经实现了,可是之后再去点击通知栏内的推送的时候,语音播报会再次响起,而且是打不开APP的,我试着在广播中试着去打开App,这样的话再推送刚一推过来的时候会打开App,点击通知栏的时候依然会打开App,希望能够有大神对以上问题帮帮我,感谢! 根据你的文字描述,你已经实现了语音播报和点击通知栏打开APP,那么你还有什么问题,我是没看明白
推送过来的时候会有语音播报,在通知栏点击推送消息的时候语音播报会再次想起!不过我已经解决了!
Jing丶無雙 2017-12-14
  • 打赏
  • 举报
回复
可是通过以上方法播报语音是已经实现了,可是之后再去点击通知栏内的推送的时候,语音播报会再次响起,而且是打不开APP的,我试着在广播中试着去打开App,这样的话再推送刚一推过来的时候会打开App,点击通知栏的时候依然会打开App,希望能够有大神对以上问题帮帮我,感谢! 根据你的文字描述,你已经实现了语音播报和点击通知栏打开APP,那么你还有什么问题,我是没看明白

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧