📄 datatype.java
字号:
package skullplay;
import javax.sound.sampled.*;
import java.io.*;
public class DataType
{
private AudioInputStream fileis=null,soundis=null;
private AudioFormat fileaf,soundaf1,soundaf2,soundall=null;
private float sampleRate;
private int channels;
public DataType()
{}
public AudioInputStream getSoundInputStream()
{
return soundis;
}
public AudioInputStream getFileInputStream()
{
return fileis;
}
public AudioFormat getSoundFormat()
{
return soundall;
}
public void getFile(File file)
{
try
{
fileis=AudioSystem.getAudioInputStream(file);//把文件数据放入声音流里去!
}
catch (UnsupportedAudioFileException eus)
{
System.out.println("file->audio:你输入的不是有效的音乐文件!\n"+eus);
}
catch(IOException eio)
{
System.out.println("file->audio:I/O出现错误!\n"+eio);
}
fileaf=fileis.getFormat();//获得声音流的原始格式!
sampleRate=fileaf.getSampleRate();
channels=fileaf.getChannels();
if(fileaf.isBigEndian())//建立要转换的格式,主要针对MP3!
{
soundaf2=new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,sampleRate,8,channels,2,sampleRate,true);
soundaf1=new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,sampleRate,16,channels,4,sampleRate,true);
}
else
{
soundaf1=new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,sampleRate,16,channels,4,sampleRate,false);
soundaf2=new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,sampleRate,8,channels,2,sampleRate,false);
}
if(AudioSystem.isConversionSupported(soundaf1,fileaf))//开始转换格式,
{
soundis=AudioSystem.getAudioInputStream(soundaf1,fileis);
soundall=soundaf1;
soundaf1=null;
soundaf2=null;
fileaf=null;
}
else
{
if(AudioSystem.isConversionSupported(soundaf2,fileaf))
{
soundis=AudioSystem.getAudioInputStream(soundaf2,fileis);
soundall=soundaf2;
soundaf1=null;
soundaf2=null;
fileaf=null;
}
else//WAV格式将不进行转换!
{
soundis=fileis;
soundall=fileaf;
soundaf1=null;
soundaf2=null;
fileaf=null;
}
}
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -