java语音播放事例
AudioSystem类充当取样音频系统资源的入口点。此类允许查询和安装在系统上的
混频器。AudioSystem包括许多在不同格式间转换音频数据的方法,以及在音频文
件和流文件之间进行转换的方法。它还提供不用显式处理混频器即可直接从
AudioSystem获得Line的方法
AudioFormat 是在声音流中指定特定数据安排的类。通过检查以音频格式存储的信息,可以发现在二进制声音数据中解释位的方式。
Line.Info类
Line.Info对象包含关于行的信息。只有Line.Info本身提供的信息是该行的Java类。Line.Info子类添加该行的其他种类的信息。这些附加信息取决于通过Line.Info子类所描述的行种类实现的Line子接口。
DataLine.Info类
除了继承自超类Line.Info的类信息以外,DataLine.Info还提供特定于数据行的其他信息。这些信息包括:受数据行支持的音频格式 其内部缓冲区的最大和最小
接口SourceDataLine
源数据行是可以写入数据的数据行。它充当其混频器的源。应用程序将音频字节写入源数据行,这样可处理字节缓冲并将它们传给混频器。混频器可以将这些样本与取自其他源的样本混合起来,然后将该混合物传递到输出端口之类的目标(它可表示声卡上的音频输出设备)
程序事例:
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class Playtest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
"c://abc.wav"));// 获得音频输入流
AudioFormat baseFormat = ais.getFormat();// 指定声音流中特定数据安排
System.out.println("baseFormat="+baseFormat);
DataLine.Info info = new DataLine.Info(SourceDataLine.class,
baseFormat);
System.out.println("info="+info);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
// 从混频器获得源数据行
System.out.println("line="+line);
line.open(baseFormat);// 打开具有指定格式的行,这样可使行获得所有所需的系统资源并变得可操作。
line.start();// 允许数据行执行数据 I/O
int BUFFER_SIZE = 4000 * 4;
int intBytes = 0;
byte[] audioData = new byte[BUFFER_SIZE];
while (intBytes != -1) {
intBytes = ais.read(audioData, 0, BUFFER_SIZE);// 从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。
if (intBytes >= 0) {
int outBytes = line.write(audioData, 0, intBytes);// 通过此源数据行将音频数据写入混频器。
}
}
} catch (Exception e) {
}
}
}
width="490" scrolling="no" height="150" frameborder="0" align="middle" marginwidth="0" marginheight="0" src="http://www.blogbao.com/script.aspx?userid=45735&AdType=0&AdstyleID=46090&Direction=1" style="width: 490px; height: 150px;">
java语音播放事例相关推荐
- java语音播报案例
在做项目的过程中,我们往往会用到语音播报--把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作: 1.下载jacob.jar,下载地址:这里 2.32位操作系统下载:jacob ...
- HaaS100 云端钉一体智能语音播放器设计
1.方案介绍 本文主要介绍如何基于HaaS100硬件平台搭建"云端钉一体"(阿里云IoT平台 + HaaS100 + 钉钉小程序)的智能语音播放器(以下简称智能语音播放器).该智能 ...
- android中录音断点播放,Android实现语音播放与录音功能
本文实例为大家分享了Android实现语音播放与录音的具体代码,供大家参考,具体内容如下 项目用到的技术点和亮点 语音录音 (单个和列表) 语音播放(单个和列表) 语音录音封装 语音播放器封装 语音列 ...
- Java语音程序开发用户指南
1 概述 本文档是开发科大讯飞Java语音程序的用户指南,定义了语音听写.语音识别.语音合成以及语义理解相关接口的使用说明和体系结构,如图1所示. 科大讯飞语音功能抢先体验: http://www.x ...
- Windows如何 cmd 查找文件路径 开机启动 CMD语音播放 CMD切换到管理员!
1,语音播放: CreateObject("SAPI.SpVoice").Speak"崭新的开始,你好!" 单词别拼写错误啦! 把这个拖到开机启动项里就可以开后 ...
- python输出到语音播放_用Python写一个语音播放软件
单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...
- python语音播报-用Python写一个语音播放软件
单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...
- python软件界面-用Python写一个语音播放软件
原标题:用Python写一个语音播放软件 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的 ...
- Avalonia跨平台入门第二十篇之语音播放问题
在前面分享的几篇中咱已经玩耍了Popup.ListBox多选.Grid动态分.RadioButton模板.控件的拖放效果.控件的置顶和置底.控件的锁定.自定义Window样式.动画效果.Expande ...
最新文章
- 水晶报表printmode的ActiveX打印
- 微服务架构核心20讲 课程的学习笔记
- 【FFmpeg】FFmpeg 帮助文档使用
- sqlserver中删除重复行的方法
- 工作92:500错误
- 解决eclipse 文件更新不自动刷新的问题
- View Merge 在安全控制上的变化,是 BUG 还是增强 ?
- 批量执行newman
- 年轻人的第一笔债,在双11的直播间里
- 电商详情页的一般实现
- c语言如何输出数组最大值和最小值,C语言输出数组中最大和次大的数
- UWB定位原理详细介绍
- ThinkPHP 提示验证码输入错误
- 如何在Windows 10上不用鼠标使用文件资源管理器
- 解决git报错[remote rejected] HEAD -> master (pre-receive hook declined) error: failed to push some...
- 大厂对ChatGPT的开发利用和评估案例收录
- C语言打开微信提示找不到文件,电脑提示系统找不到指定文件怎么办?
- Android的各版本间的区别总结
- High performance server architecture(高性能服务器架构)
- 蓝牙APP开发你应该知道的几件事
热门文章
- css高度100%(百分比高度)
- 从我的简历再谈测试分类
- 重启nginx后丢失nginx.pid的解决方法(转)
- Pycharm 加载pygame解决方案
- 自监督学习推荐系统综述: 150篇自监督推荐系统文献概述四大类方法(含开源算法库SELFRec)...
- 【报告分享】2020-2021虎嗅洞察报告:聚焦私域流量,洞察增长变局.pdf(附下载链接)...
- 推荐系统中粗排扮演的角色和算法发展历程
- 同质异质网络——(F(fraud) A(Analytics) UDPSNT(Wylie_2015))
- 图形界限命令在命令行输入_CAD骚操作,恭喜你又学会了几个重要的命令
- maven中pom.xml显示不正常的问题