`
rieei
  • 浏览: 70224 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

java 声音

阅读更多
1.从MIC读入声音
//8000,11025,16000,22050,44100 具有此格式的声音每秒播放和录制的帧数
        float sampleRate = 16000.0F;
        //8,16 存储每个快照的位数
        int sampleSizeInBits = 16;
        //1,2 单声道 立体声
        int channels =1;
        //true,false
        boolean signed = true;
        //true,false 字节序
        boolean bigEndian = false;
        audioFormat = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
        //STEP2:受数据行支持的音频格式   其内部缓冲区的最小和最大大小
        DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
       
        //STEP3:从系统取样音频系统资源的入口点 音频捕获设备获取其数据的数据行
        TargetDataLine targetDataLine = (TargetDataLine)AudioSystem.getLine(info);
        //STEP4:打开
        targetDataLine.open(audioFormat);
        //STEP5:开始
        targetDataLine.start();
    
        bos = new ByteArrayOutputStream();
        int size = 0;
        boolean isContinue = true;
        int count = 0;
        long startTime = System.currentTimeMillis();
        while (isContinue)
        {
            int readed = targetDataLine.read(temps, 0, temps.length);
            if (readed > 0)
            {
                bos.write(temps, 0, readed);
                size += readed;
            }
            System.out.println((System.currentTimeMillis() - startTime) + ":" + size + "  count: " + count + " "
                + readed);
            if (count++ > 10)
            {
                isContinue = false;
            }
        }
        bos.close();
        System.out.println("录音结束");


2.播放声音 (中间含保存)
byte[] audioData = bos.toByteArray();
        System.out.println(audioData.length);
        InputStream bis = new ByteArrayInputStream(audioData);
        audioInputStream = new AudioInputStream(bis, audioFormat, audioData.length / audioFormat.getFrameSize());
        DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat);
        sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfo);
        sourceDataLine.open(audioFormat);
        sourceDataLine.start();
        int readed = 0;
        long startTime = System.currentTimeMillis();
        int count = 0;
       
        //保存
        File file = new File("D:/test1.wav");
        AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, file);
          
        audioInputStream.reset();
        while ((readed = audioInputStream.read(temps, 0, temps.length)) != -1)
        {
            System.out.println((System.currentTimeMillis() - startTime) + "  count: " + count + " " + readed);
            sourceDataLine.write(temps, 0, readed);
            count++;
        }
        sourceDataLine.drain();
        sourceDataLine.close();

3.从本地读取并播放
File f = new File("F:/workspace/test/sound/hero-attack1.wav");
        AudioInputStream audioStream = AudioSystem.getAudioInputStream(f);
        AudioFileFormat format = AudioSystem.getAudioFileFormat(f);
        DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, format.getFormat());
        sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfo);
        sourceDataLine.open(format.getFormat());
        sourceDataLine.start();
        int readed = 0;
        while ((readed = audioStream.read(temps, 0, temps.length)) != -1)
        {
            sourceDataLine.write(temps, 0, readed);
        }
        sourceDataLine.drain();
        sourceDataLine.close();
分享到:
评论

相关推荐

    利用Java声音技术实现声音的采集与播放.

    接下来,我们将详细探讨如何利用Java声音技术实现声音的采集与播放。 首先,我们需要了解Java声音技术的两个主要包:`javax.sound.sampled` 和 `javax.sound.midi`。`javax.sound.sampled` 包提供了一系列的API用于...

    java 声音技术浅析

    Java声音技术浅析 在Java世界里,多媒体技术的集成一直是开发者关注的焦点,其中声音技术尤为关键。本文将深入探讨Java对声音处理的支持,包括Applet中的声音播放、Java应用程序中的声音处理以及JavaX中Sound包的...

    java声音补丁for moto q9

    摩托罗拉q9h可以用的Java声音补丁,wm系统sp平台

    JAVA声音技术合集

    首先,"介绍java+声音处理.pdf"可能是一个详细的文档,涵盖了Java声音API的基础知识。Java Sound API是Java平台的标准组件,用于播放、录制、处理和合成音频。它包括几个关键组件,如AudioSystem类,用于全局音频...

    Java声音播放程序源代码.zip

    本资源“Java声音播放程序源代码.zip”提供了一套完整的Java源代码,可以帮助开发者理解和实现音频播放功能。下面将详细介绍这个压缩包中的内容以及相关Java音频处理的知识点。 首先,`readme.md`文件通常包含项目...

    介绍java 声音处理

    ### Java声音处理:使用Java Sound API进行Applet编程 #### 整体呈现目标 本教程旨在教授如何利用Java Sound API创建能录制与播放音频数据的Applet。通过本教程,您将了解使用Java Sound API在Applet中实现声音功能...

    Java声音技术 (CHM)

    Java声音技术是一个重要的领域,尤其对于那些希望在Java应用程序中集成音频功能的开发者而言。这个“Java声音技术(CHM)”文档很可能包含了全面的指南和详细的教程,帮助开发者理解和利用Java提供的声音API来实现...

    Java声音播放程序源代码

    本主题将深入探讨如何利用Java来实现声音播放程序,并基于提供的"Java声音播放程序源代码"进行分析。 首先,Java提供了`javax.sound`包,其中包含`javax.sound.sampled`子包,它是Java标准版(Java SE)中处理音频...

    Java声音处理培训资料

    【Java声音处理培训资料】 Java声音处理是Java编程领域中的一个重要分支,它允许开发者创建、播放、录制和处理音频文件。在Java中,声音处理主要依赖于Java Sound API(Java Sound Application Programming ...

    java声音技术详解 图片+文档说明

    Java声音技术是Java平台提供的一种用于处理音频数据的机制,它允许开发者在应用程序中播放、录制、处理和合成声音。本教程将深入讲解Java声音技术的各个方面,旨在帮助你理解和运用这一技术。 首先,Java声音系统的...

    JAVA源码Java声音播放程序源代码JAVA源码Java声音播放程序源代码

    JAVA源码Java声音播放程序源代码JAVA源码Java声音播放程序源代码

    java源码:Java声音播放程序源代码.rar

    这个"java源码:Java声音播放程序源代码.rar"压缩包包含了一个使用Java实现的声音播放程序的源代码,这对于初学者和有经验的开发者来说都是一个宝贵的资源。通过分析和学习这些源代码,我们可以深入理解Java如何处理...

    Java声音播放程序源代码.7z

    Java声音播放程序是一种基于Java平台的应用程序,它能够读取并播放各种音频文件。这个压缩包文件"Java声音播放程序源代码.7z"包含了实现这一功能的源代码,是学习和理解Java音频处理的好资源。本文将深入探讨Java中...

    java源码资源Java声音播放程序源代码

    java源码资源Java声音播放程序源代码提取方式是百度网盘分享地址

    JAVA声音技术

    Java声音技术是Java平台上用于处理和播放音频及MIDI音乐的一种功能强大的API,它使得开发者能够集成高质量的声音到他们的应用程序中。Java Sound API是Java 2平台的一部分,它极大地提升了Java处理音频的能力,从...

    声音识别语音识别资料078917JAVA声音技术.zip

    声音识别语音识别资料078917JAVA声音技术.zip

    Java播放本地声音,实现系统报警

    ### Java播放本地声音实现系统报警 #### 背景与目的 在开发应用程序时,有时候我们需要为用户添加声音反馈功能,比如系统报警提示。通过Java编程语言,我们可以轻松地实现这一功能。本篇文章将详细介绍如何利用...

    JAVA声音提示

    在Java编程中,实现声音提示是一项实用的功能,可以增加用户交互体验。Java提供了多种方法来播放音频,使得开发者能够在程序中轻松地添加声音效果或通知。以下是对这一主题的详细探讨: 1. **Java Sound API** ...

Global site tag (gtag.js) - Google Analytics