AudioFormat
AudioFormat
오디오 데이터의 형식을 설명하는 클래스예요. 인코딩, 샘플링 레이트, 샘플 크기, 채널 수 등 오디오 데이터의 구조를 나타내요.
본문
javax.sound.sampled 패키지에 속하는 클래스로, java.lang.Object를 상속해요. AudioFormat은 오디오 데이터가 어떻게 인코딩되고 저장되는지 설명해요. 일반적으로 PCM(Pulse Code Modulation) 같은 인코딩 방식과 샘플링 레이트를 나타내요.
public class AudioFormat extends Object
생성자
public AudioFormat(AudioFormat.Encoding encoding, float sampleRate,
int sampleSizeInBits, int channels,
int frameSize, float frameRate, boolean bigEndian)
지정된 인코딩, 샘플링 레이트, 샘플 크기, 채널 수 등으로 새 오디오 형식을 생성해요.
- 파라미터
encoding: 인코딩 방식(PCM_SIGNED 등) - 파라미터
sampleRate: 초당 샘플 수(Hz) - 파라미터
sampleSizeInBits: 각 샘플의 비트 수 - 파라미터
channels: 채널 수 - 파라미터
frameSize: 각 프레임의 바이트 수 - 파라미터
frameRate: 초당 프레임 수 - 파라미터
bigEndian: 바이트가 빅엔디안인지 여부
public AudioFormat(float sampleRate, int sampleSizeInBits, int channels,
boolean signed, boolean bigEndian)
인코딩이 Encoding.PCM_SIGNED(signed가 true) 또는 Encoding.PCM_UNSIGNED(false)인 오디오 형식을 생성해요. 프레임 크기와 프레임 레이트는 샘플 크기와 채널 수로부터 파생돼요.
getEncoding
public AudioFormat.Encoding getEncoding()
오디오 데이터의 인코딩 유형을 얻어요.
- 반환값: 인코딩 유형
getSampleRate
public float getSampleRate()
샘플링 레이트를 얻어요. 초당 샘플 수(Hz)를 나타내요.
- 반환값: 샘플링 레이트. 알 수 없으면
AudioSystem.NOT_SPECIFIED
getSampleSizeInBits
public int getSampleSizeInBits()
각 샘플의 비트 수를 얻어요.
- 반환값: 샘플 크기(비트)
getChannels
public int getChannels()
채널 수를 얻어요.
- 반환값: 채널 수
getFrameSize
public int getFrameSize()
각 프레임의 바이트 수를 얻어요.
- 반환값: 프레임 크기
getFrameRate
public float getFrameRate()
초당 프레임 수를 얻어요.
- 반환값: 프레임 레이트
isBigEndian
public boolean isBigEndian()
바이트가 빅엔디안인지 나타내요.
- 반환값: 빅엔디안이면
true, 리틀엔디안이면false
matches
public boolean matches(AudioFormat format)
이 형식이 지정된 형식과 일치하는지 나타내요. 다른 형식에 명시된 경우 파라미터를 일치하는 것으로 간주할 수 있어요.
- 파라미터
format: 비교할 형식 - 반환값: 일치하면
true, 그렇지 않으면false
중첩 클래스 Encoding
AudioFormat.Encoding은 음성 데이터의 인코딩 유형을 나타내는 중첩 클래스예요. 표준 인코딩으로 PCM_SIGNED(부호 있는 PCM), PCM_UNSIGNED(부호 없는 PCM), PCM_FLOAT, ULAW(µ-law), ALAW(A-law) 등이 있어요.