当前位置:   article > 正文

Android 播放base64音频_android base64转语音

android base64转语音

需求描述:

做一个Android扫码验证入场的程序:

如果验证通过,则播放一段“验证通过,请放行”的语音,

如果验证不通过,则播放其他的语音提示。

实现步骤:

1.要播放语音提示,先要有语音文件。可以使用百度的在线语音合成在线语音合成_高度拟人的语音合成服务-百度AI开放平台t

 通过分析网页请求,可以看到返回的语音是一段base64的字符串。

其中data部分就是我们需要的语音,由于在json中/被转义,多了“\”符号,所以我们需要收动将 “\”替换为空。

将处理完的base64字符串存好,留着备用。

2.Android播放base64音频。

  1. public void playMedia(String voiceBase64) {
  2. try {
  3. MediaPlayer mediaPlayer = new MediaPlayer();
  4. try {
  5. mediaPlayer.setDataSource(voiceBase64);
  6. mediaPlayer.prepareAsync();
  7. mediaPlayer.setVolume(100f, 100f);
  8. mediaPlayer.setLooping(false);
  9. } catch (IllegalArgumentException e) {
  10. Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
  11. } catch (SecurityException e) {
  12. Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
  13. } catch (IllegalStateException e) {
  14. Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
  15. } catch (IOException e) {
  16. e.printStackTrace();
  17. }
  18. mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  19. @Override
  20. public void onPrepared(MediaPlayer player) {
  21. player.start();
  22. }
  23. });
  24. mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  25. @Override
  26. public void onCompletion(MediaPlayer mp) {
  27. mp.stop();
  28. mp.release();
  29. }
  30. });
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. }

 调用方式很简单,传入base64音频即可。

findViewById(R.id.btnPass).setOnClickListener(view -> playMedia(Voice.Pass));
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/949521?site
推荐阅读
相关标签
  

闽ICP备14008679号