Android 播放base64音频

分类:Android     发布:2023-02-16     来源:本站     浏览:148 次
需求描述:
做一个Android扫码验证入场的程序:
如果验证通过,则播放一段“验证通过,请放行”的语音,
如果验证不通过,则播放其他的语音提示。

实现步骤:
1.要播放语音提示,先要有语音文件。可以使用百度的在线语音合成
 通过分析网页请求,可以看到返回的语音是一段base64的字符串。 

其中data部分就是我们需要的语音,由于在json中/被转义,多了“\”符号,所以我们需要收动将 “\”替换为空。
将处理完的base64字符串存好,留着备用。

2.Android播放base64音频。
public void playMedia(String voiceBase64) {
        try {
            MediaPlayer mediaPlayer = new MediaPlayer();
            try {
                mediaPlayer.setDataSource(voiceBase64);
                mediaPlayer.prepareAsync();
                mediaPlayer.setVolume(100f, 100f);
                mediaPlayer.setLooping(false);
            } catch (IllegalArgumentException e) {
                Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
            } catch (SecurityException e) {
                Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
            } catch (IllegalStateException e) {
                Toast.makeText(getApplicationContext(), "You might not set the DataSource correctly!", Toast.LENGTH_LONG).show();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer player) {
                    player.start();
                }
            });
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    mp.stop();
                    mp.release();
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
调用方式很简单,传入base64音频即可。
findViewById(R.id.btnPass).setOnClickListener(view -> playMedia(Voice.Pass));



如果觉得文章对您有帮助,您可以对我进行打赏 ¥1.73 元(金额随机^_^,每次刷新金额不同)。

请使用支付宝扫码支付

留言评论

*称  呼:
*联系方式: 方便与您取得联系,推荐使用邮箱。
*内  容:

已有评论

暂无数据

上一篇:Java Http请求辅助类(单文件,无包依赖)

下一篇:C# 阿里云短信接口调用(不使用SDK,单文件完成)