JSP实现播放语音叫号功能 需求:可以在JSP中播放我得到的排队序号。我的排队顺序号例子A001,那么则播放请A001号前来办理业务 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接学习那些在浏览器上放MP3的网站就行了吧?本质上就是开个页面,嵌入一个ActiveX,然后播放MP3。你面临的问题是:A001这个东西,是预先录入好比如 10000份,还是用语音合成。 我现在的想法是拆分,A+N+N+N来报数,这样需要准备11个mp3文件,A和10个数字,然后拼接语音,问题是怎么实现我不知道啊 你想拆分到最细粒度,这个浪费系统性能,而且我个人觉得效果可能也一般。需要用javax.sound.sampled包来做,不知道有没有开源实现。建议你以 “Java 声音文件合并” 之类的方式来提问和Google,这样目标明确写。其实你看大多数的大厅系统,都是直接喊号码,你直接录1000个号(考虑用专门的音频编辑工具批量生成)进去,基本就够用了。 找到了一段示例代码,你试试看吧。如果能用,就写一个Servlet,根据参数将几个文件读取进来,然后用流式输出到response中进去,当然别忘了设置HTTP头信息,比如Content-Type等。写好了Servlet后,自己直接用IE浏览器直接访问下URL(注意带上参数),看能不能下载到合并后的音频文件,能就已经成功了。最后的播放页面上仍然是一样的,用一个ActiveX播放器,但URL地址直接引用你写的Servlet的地址即可。 public void mergeFile(File srcFile1, File srcFile2, File descFile) throws IOException, UnsupportedAudioFileException { AudioFileFormat aff = AudioSystem.getAudioFileFormat(getResources().openRawResource(R.raw.music0)); AudioInputStream ais1 = AudioSystem.getAudioInputStream(getResources().openRawResource(R.raw.music0)); AudioInputStream ais2 = AudioSystem.getAudioInputStream(getResources().openRawResource(R.raw.music1)); SequenceInputStream sis = new SequenceInputStream(ais1, ais2); AudioSystem.write(new AudioInputStream(sis, aff.getFormat(), ais1.getFrameLength() + ais2.getFrameLength()), aff.getType(), descFile); if (ais1 != null) ais1.close(); if (ais2 != null) ais2.close(); if (sis != null) sis.close(); } 那您能给我一个ActiveX播放器吗?顺便告诉我使用方法,如果可能的话,谢谢! 默认就是用Windows自带的MediaPlayer啊。下面这段是放自己电脑C盘下的音乐,你试试看吧:<OBJECT width="1024" height="800" ID="Player" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" ><param name="URL" value="file:///C:\\北京欢迎你正式版.WMV" /><PARAM name="autoStart" value="True"/><param name="volume" value="100"/><param name="stretchToFit" value="1"> <param name="uiMode" value="none"/></OBJECT> 这样的一个xml如何读取. 取得里面的power. 急急:oracle sql 语句如何写 查询字段为Clob类型 的为空的结果? hibernate多态查询是什么 js获取URL参数~~! 想求一个jsp高手带,谁肯收我么 会员管理模块数据库设计问题 JSP中单选按钮组怎么实现 并且提交与传递信息 java代码性能检测工具 关于JSP+Servlet+JavaBean的一个题 mevan与java web项目的结合与管理 用户登录问题 struts2标签iterator中迭代的JS获值问题
我现在的想法是拆分,A+N+N+N来报数,这样需要准备11个mp3文件,A和10个数字,然后拼接语音,问题是怎么实现我不知道啊
public void mergeFile(File srcFile1, File srcFile2, File descFile)
throws IOException, UnsupportedAudioFileException {
AudioFileFormat aff = AudioSystem.getAudioFileFormat(getResources().openRawResource(R.raw.music0));
AudioInputStream ais1 = AudioSystem.getAudioInputStream(getResources().openRawResource(R.raw.music0));
AudioInputStream ais2 = AudioSystem.getAudioInputStream(getResources().openRawResource(R.raw.music1));
SequenceInputStream sis = new SequenceInputStream(ais1, ais2);
AudioSystem.write(new AudioInputStream(sis, aff.getFormat(), ais1.getFrameLength() + ais2.getFrameLength()),
aff.getType(), descFile);
if (ais1 != null)
ais1.close();
if (ais2 != null)
ais2.close();
if (sis != null)
sis.close();
}
那您能给我一个ActiveX播放器吗?顺便告诉我使用方法,如果可能的话,谢谢!
<param name="URL" value="file:///C:\\北京欢迎你正式版.WMV" />
<PARAM name="autoStart" value="True"/>
<param name="volume" value="100"/>
<param name="stretchToFit" value="1">
<param name="uiMode" value="none"/>
</OBJECT>