使用Java播放WAV文件

奥萨马

我正在尝试使用java声音库和以下代码在raspbery pi上播放wav文件usinf javafx,出现如下错误

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian not supported.

到处搜寻之后,我发现

树莓派声卡驱动程序不支持big-endian音频格式,我需要更改getAudioFormat()函数以请求little-endian格式:

boolean bigEndian = false;

好的,到目前为止,我认为我需要以下内容

private AudioFormat getAudioFormat() {
float sampleRate = 8000.0F;
int sampleInbits = 16;
int channels = 1;
boolean signed = true;
boolean bigEndian = false;
return new AudioFormat(sampleRate, sampleInbits, channels, signed, bigEndian);
}

但是我getAudioFormat()从下面的代码中调用

URL url = this.getClass().getClassLoader().getResource("Audio/athan1.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream( url ); 
标清

看一下AudioSystemAPI中的方法签名有一种方法getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)

一旦你已经获得AudioFormat通过调用您的重写getAudioFormat()(或参见下文),你应该能够(报价从API):

通过转换提供的音频输入流,获得指定格式的音频输入流。graco.com graco.com

getAudioFormat()除了重写(因为将来要播放其他文件类型会发生什么?),还可以查看问题Conflicting Jar Methods中的第一个片段,它似乎可以完全满足您的要求,而不必重写该方法,并且也是使用上述方法转换音频流的示例。

编辑

试试这个。

URL url = this.getClass().getClassLoader().getResource("Audio/athan1.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(url); 
AudioFormat littleEndianFormat = getAudioFormat();
AudioInputStream converted = AudioSystem.getAudioInputStream(littleEndianFormat, ais); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Java播放WAV文件?

来自分类Dev

在Java中播放.wav文件

来自分类Dev

在Java中播放.wav文件

来自分类Dev

Android:如何使用MediaPlayer播放WAV文件

来自分类Dev

使用portaudio和sndfile播放WAV文件

来自分类Dev

如何使用python无限播放“.wav”文件

来自分类Dev

从数组播放Wav文件

来自分类Dev

播放.wav文件

来自分类Dev

Clip在Java中播放具有严重滞后的WAV文件

来自分类Dev

Clip在Java中播放具有严重滞后的WAV文件

来自分类Dev

如何在Java中播放.wav文件而不停止程序?

来自分类Dev

为什么Java无法播放我的.wav文件?

来自分类Dev

android java从sd卡播放wav音频文件

来自分类Dev

如何使用C#从Properties.Resources播放WAV文件

来自分类Dev

使用Naudio或Win API同时播放多个.wav文件

来自分类Dev

使用gstreamer api播放.wav文件时出错

来自分类Dev

AVAudioPlayer无法播放使用ExtAudioFileWriteAsync写入的音频(.wav)文件

来自分类Dev

不使用库播放 MP3/WAV 文件?

来自分类Dev

播放.wav文件x秒

来自分类Dev

播放wav文件python 3

来自分类Dev

在Java中使用AudioPlayer播放24位WAV

来自分类Dev

多次播放后java .wav播放失败

来自分类Dev

多次播放后java .wav播放失败

来自分类Dev

增加/减少WAV文件Python的播放速度

来自分类Dev

用NAudio处理后播放wav文件

来自分类Dev

停止在MATLAB GUI中播放wav文件

来自分类Dev

在Delphi中播放PCM Wav文件

来自分类Dev

在Chrome中播放WAV文件失败

来自分类Dev

播放时如何绘制WAV文件