|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--javax.sound.sampled.AudioFormat
AudioFormat
는 사운드 스트림내에서 데이터의 특정의 배열을 지정하는 클래스입니다. 오디오 형식에서 저장되고 있는 정보를 참조하면(자), 바이너리 사운드 데이터내의 비트의 해석 방법을 알 수 있습니다.
모든 데이터 라인에는 그 데이터 스트림에 관련한 오디오 형식이 있습니다. 소스 (재생) 데이터 라인의 오디오 형식은 데이터 라인이 출력용으로 수신하는 데이터의 종류를 나타냅니다. 타겟 (취득) 데이터 라인의 경우, 오디오 형식은 그 라인으로부터 읽어들일 수 있는 데이터의 종류를 지정합니다. 당연, 사운드 파일에도 오디오 형식이 있습니다.
클래스는 다른 파일 고유의 정보 이외에 AudioFileFormat
AudioFormat
를 캡슐화합니다. 같이
에도 AudioInputStream
AudioFormat
가 있습니다.
AudioFormat
클래스에는 펄스부호변조 (PCM), mu-law 인코딩, a-law 인코딩등의, 많은 공통 사운드 파일 encode 수법이 포함되어 있습니다. 이러한 encode 수법은 사전에 정의되고 있습니다만, 서비스 프로바이더는 새로운 인코딩 타입을 작성할 수가 있습니다. 특정의 형식에서 사용되는 인코딩은 그 encoding
필드에 의해 지정됩니다.
오디오 형식에는 인코딩 이외에도 데이터의 정확한 배열을 보다 상세하게 지정하는 다른 프로퍼티도 있습니다. 이러한 프로퍼티에는 채널수, 샘플 레이트, 샘플 사이즈, 바이트 순서, frame rate, frame size등이 있습니다. 사운드에는 물건용으로 1 kr, 스테레오용으로 2 kr 등, 다른 수의 오디오 채널이 있는 경우가 있습니다. 샘플 레이트는 사운드 압력의 「snapshot」 (샘플)을, 채널 마다 1 초 당 몇kr 취할 수 있는지 측정합니다. 사운드가 물건은 아니고 스테레오의 경우는 실제로 2 개의 샘플이 순간 마다 측정됩니다. 이 경우 1 kr은 왼쪽 채널용으로, 이제(벌써) 1 kr은 오른쪽 채널용입니다. 다만, 샘플 레이트는 1 채널 당의 수도 측정하기 위해(때문에), 채널수에 관계없이 레이트는 같게 됩니다. 이것은 샘플 레이트의 표준적인 사용법입니다. 샘플 사이즈는 각 snapshot를 저장하는 경우에 사용되는 비트수를 나타냅니다. 8 및 16 이 통상의 값입니다. 16 비트의 샘플 그 외 1 바이트보다 큰 사이즈의 샘플의 경우, 바이트 순서는 중요합니다. 각 샘플의 바이트는 「little endian」형식 또는 「빅 endian」형식의 어느 쪽인지로 배열됩니다. PCM 와 같은 인코딩의 경우는 1 개의 프레임이 지정된 시점의 모든 채널의 샘플세트로 구성되어 frame size (바이트수)는 항상 샘플 사이즈 (바이트 단위)와 같게 됩니다. 다만, 다른 종류의 인코딩의 경우, 프레임에 일련의 샘플 전체의 대량의 압축 데이터 이외에, 샘플 이외의 추가 데이터도 포함할 수가 있습니다. 그러한 인코딩에서는 샘플 레이트 및 샘플 사이즈는 데이터를 PCM 에 복호화(decode) 하고 나서 참조하기 위해(때문에), 샘플 레이트나 샘플 사이즈는 frame rate나 frame size와는 완전히 다른 것이 됩니다.
DataLine.getFormat()
,
AudioInputStream.getFormat()
,
AudioFileFormat
,
FormatConversionProvider
중첩된 클래스의 개요 | |
static class |
AudioFormat.Encoding
Encoding 클래스는 오디오 스트림에 사용되는 데이터 표현의 특정의 종류를 지정합니다. |
필드의 개요 | |
protected boolean |
bigEndian
데이터를 빅 endian 혹은 little endian의 어느 쪽의 순서로 저장하는지를 나타냅니다. |
protected int |
channels
이 형식의 오디오 채널수 (물건용으로 1 kr, 스테레오용으로 2 kr) |
protected AudioFormat.Encoding |
encoding
이 형식에서 사용되는 오디오 인코딩 수법 |
protected float |
frameRate
이 형식을 가지는 사운드의, 1 초 당에 재생 또는 녹음된 프레임수 |
protected int |
frameSize
이 형식을 가지는 사운드의 각 프레임의 바이트수 |
protected float |
sampleRate
이 형식을 가지는 사운드의, 1 초 당에 재생 또는 녹음된 샘플수 |
protected int |
sampleSizeInBits
이 형식을 가지는 사운드의 각 샘플의 비트수 |
생성자의 개요 | |
AudioFormat (AudioFormat.Encoding encoding,
float sampleRate,
int sampleSizeInBits,
int channels,
int frameSize,
float frameRate,
boolean bigEndian)
지정된 파라미터를 가지는 AudioFormat 를 구축합니다. |
|
AudioFormat (float sampleRate,
int sampleSizeInBits,
int channels,
boolean signed,
boolean bigEndian)
리니어 PCM 인코딩 및 지정된 파라미터를 가지는 AudioFormat 를 구축합니다. |
메소드의 개요 | |
int |
getChannels ()
채널수를 취득합니다. |
AudioFormat.Encoding |
getEncoding ()
사운드의 인코딩 타입을 이 형식에서 취득합니다. |
float |
getFrameRate ()
frame rate를 1 초 당의 프레임수로 취득합니다. |
int |
getFrameSize ()
frame size를 바이트수로 취득합니다. |
float |
getSampleRate ()
샘플 레이트를 취득합니다. |
int |
getSampleSizeInBits ()
샘플의 사이즈를 취득합니다. |
boolean |
isBigEndian ()
오디오 데이터를 빅 endian 혹은 little endian의 어느 쪽의 바이트 순서로 저장하는지를 지정합니다. |
boolean |
matches (AudioFormat format)
이 형식이 지정된 형식과 일치할지 어떨지를 나타냅니다. |
String |
toString ()
「PCM SIGNED 22050 Hz 16 bit mono big-endian audio data」등의, 형식을 기술하는 캐릭터 라인을 돌려줍니다. |
클래스 java.lang. Object 에서 상속받은 메소드 |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
protected AudioFormat.Encoding encoding
protected float sampleRate
protected int sampleSizeInBits
protected int channels
protected int frameSize
protected float frameRate
protected boolean bigEndian
생성자의 상세 |
public AudioFormat(AudioFormat.Encoding encoding, float sampleRate, int sampleSizeInBits, int channels, int frameSize, float frameRate, boolean bigEndian)
AudioFormat
를 구축합니다. 인코딩은 데이터를 나타내는 경우에 사용되는 규칙을 지정합니다. 그 외의 파라미터에 대해서는 class description
로 자세하게 설명합니다.
encoding
- 오디오 인코딩 수법sampleRate
- 1 초 당의 샘플수sampleSizeInBits
- 각 샘플의 비트수channels
- 채널수 (물건용으로 1 kr, 스테레오용으로 2 kr 등)frameSize
- 각 프레임의 바이트수frameRate
- 1 초 당의 프레임수bigEndian
- 단일 샘플의 데이터를 빅 endian의 바이트 순서로 저장할지 어떨지를 나타낸다 (false
는 little endian를 나타낸다)public AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)
AudioFormat
를 구축합니다. frame size는 각 채널로부터 1 개의 샘플을 포함하기 위해서(때문에) 필요한 바이트수로 설정되어 frame rate는 샘플 레이트로 설정됩니다.
sampleRate
- 1 초 당의 샘플수sampleSizeInBits
- 각 샘플의 비트수channels
- 채널수 (물건용으로 1 kr, 스테레오용으로 2 kr 등)signed
- 데이터가 부호 첨부나 부호 없음인지를 나타내는bigEndian
- 단일 샘플의 데이터를 빅 endian의 바이트 순서로 저장할지 어떨지를 나타낸다 (false
는 little endian를 나타낸다)메소드의 상세 |
public AudioFormat.Encoding getEncoding()
AudioFormat.Encoding.PCM_SIGNED
,
AudioFormat.Encoding.PCM_UNSIGNED
,
AudioFormat.Encoding.ULAW
,
AudioFormat.Encoding.ALAW
public float getSampleRate()
getFrameRate()
public int getSampleSizeInBits()
getFrameSize()
public int getChannels()
public int getFrameSize()
getSampleSizeInBits()
public float getFrameRate()
getSampleRate()
public boolean isBigEndian()
true
, little endian 바이트 순서의 경우는 false
public boolean matches(AudioFormat format)
AudioSystem.NOT_SPECIFIED
가 없는 경우는 2 개의 형식의 샘플 레이트도 동일하게 할 필요가 있습니다. 같이 지정한 형식에, frame rate치 AudioSystem.NOT_SPECIFIED
가 없는 경우는 frame rate도 동일하게 할 필요가 있습니다. 바이트 순서 (빅 endian 또는 little endian)는 샘플 사이즈가 1 바이트보다 큰 경우에 일치시킬 필요가 있습니다.
format
- 일치하고 있는지 판별하는 형식
true
, 그렇지 않은 경우는 false
public String toString()
Object
내의 toString
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.