ByteBuffer 从 short 到 byte[]
ByteBuffer from short to byte[]
我让用户录制一小段声音。它存储为 short[]
final int samples = 44100;
boolean isMono = true;
final short[] data = new short[samples * 5];
final AudioRecorder recorder = Gdx.audio.newAudioRecorder(samples, isMono);
final AudioDevice player = Gdx.audio.newAudioDevice(samples, isMono);
ByteBuffer buffer;
开始录制:
public void startRecord(){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Record start:");
recorder.read(data, 0, data.length);
recorder.dispose();
//buffer.putShort(data[1]);
System.out.println("Record ended:");
}
}).start();
}
并播放录制的声音:
public void playRecorded(){
new Thread(new Runnable() {
@Override
public void run() {
player.writeSamples(data, 0, data.length);
player.dispose();
}
}).start();
}
我现在需要将他们的音频片段存储在文件句柄中。为此,我需要将其转换为我所知道的 byte[]。
试试这个
ByteBuffer buffer = ByteBuffer.allocate(2);
buffer.putShort(short_value);
return buffer.array();
我让用户录制一小段声音。它存储为 short[]
final int samples = 44100;
boolean isMono = true;
final short[] data = new short[samples * 5];
final AudioRecorder recorder = Gdx.audio.newAudioRecorder(samples, isMono);
final AudioDevice player = Gdx.audio.newAudioDevice(samples, isMono);
ByteBuffer buffer;
开始录制:
public void startRecord(){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Record start:");
recorder.read(data, 0, data.length);
recorder.dispose();
//buffer.putShort(data[1]);
System.out.println("Record ended:");
}
}).start();
}
并播放录制的声音:
public void playRecorded(){
new Thread(new Runnable() {
@Override
public void run() {
player.writeSamples(data, 0, data.length);
player.dispose();
}
}).start();
}
我现在需要将他们的音频片段存储在文件句柄中。为此,我需要将其转换为我所知道的 byte[]。
试试这个
ByteBuffer buffer = ByteBuffer.allocate(2);
buffer.putShort(short_value);
return buffer.array();