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语音播放事例相关推荐

  1. java语音播报案例

    在做项目的过程中,我们往往会用到语音播报--把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作: 1.下载jacob.jar,下载地址:这里 2.32位操作系统下载:jacob ...

  2. HaaS100 云端钉一体智能语音播放器设计

    1.方案介绍 本文主要介绍如何基于HaaS100硬件平台搭建"云端钉一体"(阿里云IoT平台 + HaaS100 + 钉钉小程序)的智能语音播放器(以下简称智能语音播放器).该智能 ...

  3. android中录音断点播放,Android实现语音播放与录音功能

    本文实例为大家分享了Android实现语音播放与录音的具体代码,供大家参考,具体内容如下 项目用到的技术点和亮点 语音录音 (单个和列表) 语音播放(单个和列表) 语音录音封装 语音播放器封装 语音列 ...

  4. Java语音程序开发用户指南

    1 概述 本文档是开发科大讯飞Java语音程序的用户指南,定义了语音听写.语音识别.语音合成以及语义理解相关接口的使用说明和体系结构,如图1所示. 科大讯飞语音功能抢先体验: http://www.x ...

  5. Windows如何 cmd 查找文件路径 开机启动 CMD语音播放 CMD切换到管理员!

    1,语音播放: CreateObject("SAPI.SpVoice").Speak"崭新的开始,你好!" 单词别拼写错误啦! 把这个拖到开机启动项里就可以开后 ...

  6. python输出到语音播放_用Python写一个语音播放软件

    单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...

  7. python语音播报-用Python写一个语音播放软件

    单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...

  8. python软件界面-用Python写一个语音播放软件

    原标题:用Python写一个语音播放软件 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的 ...

  9. Avalonia跨平台入门第二十篇之语音播放问题

    在前面分享的几篇中咱已经玩耍了Popup.ListBox多选.Grid动态分.RadioButton模板.控件的拖放效果.控件的置顶和置底.控件的锁定.自定义Window样式.动画效果.Expande ...

最新文章

  1. 水晶报表printmode的ActiveX打印
  2. 微服务架构核心20讲 课程的学习笔记
  3. 【FFmpeg】FFmpeg 帮助文档使用
  4. sqlserver中删除重复行的方法
  5. 工作92:500错误
  6. 解决eclipse 文件更新不自动刷新的问题
  7. View Merge 在安全控制上的变化,是 BUG 还是增强 ?
  8. 批量执行newman
  9. 年轻人的第一笔债,在双11的直播间里
  10. 电商详情页的一般实现
  11. c语言如何输出数组最大值和最小值,C语言输出数组中最大和次大的数
  12. UWB定位原理详细介绍
  13. ThinkPHP 提示验证码输入错误
  14. 如何在Windows 10上不用鼠标使用文件资源管理器
  15. 解决git报错[remote rejected] HEAD -> master (pre-receive hook declined) error: failed to push some...
  16. 大厂对ChatGPT的开发利用和评估案例收录
  17. C语言打开微信提示找不到文件,电脑提示系统找不到指定文件怎么办?
  18. Android的各版本间的区别总结
  19. High performance server architecture(高性能服务器架构)
  20. 蓝牙APP开发你应该知道的几件事

热门文章

  1. css高度100%(百分比高度)
  2. 从我的简历再谈测试分类
  3. 重启nginx后丢失nginx.pid的解决方法(转)
  4. Pycharm 加载pygame解决方案
  5. 自监督学习推荐系统综述: 150篇自监督推荐系统文献概述四大类方法(含开源算法库SELFRec)...
  6. 【报告分享】2020-2021虎嗅洞察报告:聚焦私域流量,洞察增长变局.pdf(附下载链接)...
  7. 推荐系统中粗排扮演的角色和算法发展历程
  8. 同质异质网络——(F(fraud) A(Analytics) UDPSNT(Wylie_2015))
  9. 图形界限命令在命令行输入_CAD骚操作,恭喜你又学会了几个重要的命令
  10. maven中pom.xml显示不正常的问题