需求描述:
做一个android扫码验证入场的程序:
如果验证通过,则播放一段“验证通过,请放行”的语音,
如果验证不通过,则播放其他的语音提示。
实现步骤:
1.要播放语音提示,先要有语音文件。可以使用百度的在线语音合成。在线语音合成_高度拟人的语音合成服务-百度ai开放平台t
通过分析网页请求,可以看到返回的语音是一段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));
发表评论