`
上帝的指纹
  • 浏览: 48593 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

java播放PCM文件

    博客分类:
  • Java
阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		try {
			File file = new File("OutPcm.pcm");
			System.out.println(file.length());
			int offset = 0;
			int bufferSize = Integer.valueOf(String.valueOf(file.length())) ;
			byte[] audioData = new byte[bufferSize];
			InputStream in = new FileInputStream(file);
			in.read(audioData);

			
			
			float sampleRate = 16000;
			int sampleSizeInBits = 16;
			int channels = 1;
			boolean signed = true;
			boolean bigEndian = false;
			// sampleRate - 每秒的样本数
			// sampleSizeInBits - 每个样本中的位数
			// channels - 声道数(单声道 1 个,立体声 2 个)
			// signed - 指示数据是有符号的,还是无符号的
			// bigEndian - 指示是否以 big-endian 字节顺序存储单个样本中的数据(false 意味着
			// little-endian)。
			AudioFormat af = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
			SourceDataLine.Info info = new DataLine.Info(SourceDataLine.class, af, bufferSize);
			SourceDataLine sdl = (SourceDataLine) AudioSystem.getLine(info);
			sdl.open(af);
			sdl.start();
			while (offset < audioData.length) {
				offset += sdl.write(audioData, offset, bufferSize);
			}
		} catch (LineUnavailableException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

 

分享到:
评论
1 楼 gonglil 2014-08-20  
你没有停止sdl吧?

相关推荐

    java播放pcm文件

    在Java中播放PCM文件涉及到对音频数据的读取、解码以及通过音频系统进行播放的过程。以下是对这个主题的详细阐述: 一、PCM文件结构 PCM文件通常包含未经压缩的原始音频数据,每个采样点代表声音波形在特定时间点的...

    java pcm数据文件

    java pcm数据文件

    JAVA 音频文件PCM转WAV Utils类

    2. **解析元数据**:在转换过程中,需要确定PCM文件的采样率、位深度和通道数等信息,以便在创建WAV文件时设置正确的头部信息。 3. **构建WAV头信息**:WAV文件的头部包含了详细的音频元数据。Utils类会包含生成...

    java 语音合成PCM转MP3

    Java 语音合成为一项技术,它允许程序将文本转换为可播放的声音,广泛应用于智能助手、有声读物、电话自动服务等领域。在Java中,我们通常会利用TTS(Text To Speech)库来实现这一功能。PCM(Pulse Code Modulation...

    语音 pcm 转换 成 MP3 格式

    通常,它会读取PCM文件,创建MP3编码器实例,设置编码参数(如比特率、采样率等),然后写入数据并生成MP3文件。具体的代码实现可能涉及到对PCM数据的读取、处理和编码API的调用。 5. **WaveHeader.java**: 波形...

    java源码 java获取音频文件 播放时长AudioDemo 2018127

    这个名为"AudioDemo"的项目就是一个关于如何使用Java来获取音频文件播放时长的示例代码。在这个项目中,开发者可以学习到如何利用Java的内置库来解析音频文件的元数据,包括音频的总播放时间。 首先,我们要关注的...

    AudioTrack播放pcm文件,波形显示

    本文将深入探讨如何使用AudioTrack播放PCM文件,并展示波形,同时结合给定的文件信息,我们可以推测这是一个简单的Android demo项目。 首先,让我们了解什么是PCM(Pulse Code Modulation)。PCM是一种数字音频编码...

    音频转换(WAV转换为PCM)

    2、Java实现播放pcm音频文件(PCMPlay.java) WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码...

    pcmPlayer_java_

    本实例是关于如何使用Java实现一个简单的PCM音频文件播放器。 在Java中,`AudioTrack`类提供了播放音频的能力。它允许开发者直接向设备的音频硬件发送原始PCM数据。以下是`AudioTrack`使用的关键知识点: 1. **...

    AudioTrack实现播放PCM音频文件

    在项目PCMAudioPlayerDemo中,我们可以找到一个完整的例子,它演示了如何从PCM文件加载数据并使用AudioTrack进行播放。该示例可能包括了文件读取、AudioTrack实例化、数据写入和播放控制等核心功能。 总结来说,...

    java wav转为pcm

    纯Java ,从输入流中截去音频的前44个字节。 适用WAV转PCM

    JAVA wav转PCM Utils代码工具类

    - 写入PCM数据:将转换后的PCM数据写入新文件,可能使用`java.io.FileOutputStream`。 使用这个工具类的Demo代码应该展示如何实例化这个工具类,然后调用其方法完成转换操作。例如: ```java WavToPcmUtils ...

    java base64的mp3转base64的pcm

    java base64的MP3转base64的pcm工具类,适用于微信小程序的语音转文字,因为小程序的录音为MP3,大部分语音读写的第三方只支持wav和pcm,不用生成文件

    语音pcm测试文件专用

    "语音pcm测试文件专用"这个标题表明,我们关注的焦点是与语音处理相关的PCM(Pulse Code Modulation)测试文件,这些文件通常用于验证和优化音频处理算法或系统的性能。PCM是一种广泛使用的模拟音频信号到数字信号的...

    纯pcm格式音频文件,可用于视频格式转换的程序测试

    此外,如果你的程序支持多种音频编码格式,如MP3、AAC或OPUS等,那么PCM文件也是一个理想的测试基准,因为它们能揭示任何潜在的编码、解码错误或音质下降问题。通过对比转换前后的PCM文件,可以判断转换过程是否成功...

    对pcm音频文件进行去噪

    在处理PCM音频文件时,有时会遇到噪声问题,这可能会影响音质。本篇文章将详细探讨如何在MATLAB环境中使用巴特沃夫滤波器进行低通滤波,以及通过改进的谱减法进行噪声去除。 首先,让我们了解巴特沃夫滤波器。巴特...

    java pcm转wav

    java源码 pcm 转wav,方法参数为pcm文件路径,wav文件路径,可以直接使用。

    .pcm音频文件下载保证可用

    在这个例子中,Java程序将16k_test.pcm这个PCM文件作为输入,发送给百度的语音识别API,然后API会分析音频中的语音内容并返回对应的文本结果。返回的文本是"北京科技馆",这表明音频内容包含了这一句话。 16k_test....

    Java Android pcm文件转wav工具类

    pcm文件转为wav文件,可直接调用使用,只需要填写源文件路劲和目标文件路径,若无法使用,调整数据头即可

    使用AudioRecord进行录音 获取录音字节 将字节存储为pcm文件并将pcm文件转为wav文件

    使用AudioRecord进行录音 获取录音字节 将自己存储为pcm文件并将pcm文件转为wav文件 加单demo,只有3个按钮 开始录音/停止录音/文件转换 界面很简单 很适合初学者 快速了解AudioRecord录音的实现

Global site tag (gtag.js) - Google Analytics