JavaTM Platform
Standard Ed. 6

javax.sound.sampled
클래스 AudioFormat

java.lang.Object 
  상위를 확장 javax.sound.sampled.AudioFormat


public class AudioFormat
extends Object

AudioFormat 는, 사운드 스트림내에서 데이터의 특정의 배열을 지정하는 클래스입니다. 오디오 형식에서 포함되고 있는 정보를 참조하면(자), 바이너리 사운드 데이터내의 비트의 해석 방법을 알 수 있습니다.

모든 데이터 라인에는, 그 데이터 스트림에 관련한 오디오 형식이 있습니다. 소스 (재생) 데이터 라인의 오디오 형식은 데이터 라인이 출력용으로 수신하는 데이터의 종류를 나타냅니다. 타겟 (취득) 데이터 라인의 경우, 오디오 형식은 그 라인으로부터 읽어들일 수 있는 데이터의 종류를 지정합니다. 당연, 사운드 파일에도 오디오 형식이 있습니다. AudioFileFormat 클래스는, 다른 파일 고유의 정보 이외에 AudioFormat 를 캡슐화합니다. 같이AudioInputStream 에도 AudioFormat 가 있습니다.

AudioFormat 클래스에는, 펄스부호변조 (PCM), mu-law 인코딩, a-law 인코딩등의, 많은 공통 사운드 파일 encode 수법이 포함되어 있습니다. 이러한 encode 수법은 사전에 정의되고 있습니다만, 서비스 프로바이더는 새로운 인코딩형을 작성할 수가 있습니다. 특정의 형식에서 사용되는 인코딩은, 그 encoding 필드에 의해 지정됩니다.

오디오 형식에는, 인코딩 이외에도 데이터의 정확한 배열을 보다 상세하게 지정하는 그 외의 프로퍼티도 있습니다. 이러한 프로퍼티에는, 채널수, 샘플 레이트, 샘플 사이즈, 바이트 순서, frame rate, frame size등이 있습니다. 사운드에는, 물건용으로 1 개(살), 스테레오용으로 2 개(살) 등, 다른 수의 오디오 채널이 있는 경우가 있습니다. 샘플 레이트는, 사운드 압력의 「snapshot」 (샘플)을, 채널 마다 1 초 쯤몇개(살) 취할 수 있는지 측정합니다. 사운드가 물건은 아니고 스테레오의 경우는, 실제로 2 개의 샘플이 순간 마다 측정됩니다. 이 경우 1 개(살)은 왼쪽 채널용으로, 이제(벌써) 1 개(살)은 오른쪽 채널용입니다. 다만, 샘플 레이트는, 1 채널 근처의 수도 측정하기 위해(때문에), 채널수에 관계없이 레이트는 같게 됩니다. 이것은, 샘플 레이트의 표준적인 사용법입니다. 샘플 사이즈는, 각 snapshot를 포함하는 경우에 사용되는 비트수를 나타냅니다. 8 및 16 이 일반적으로의 값입니다. 16 비트의 샘플 그 외 1 바이트보다 큰 사이즈의 샘플의 경우, 바이트 순서는 중요합니다. 각 샘플의 바이트는, 「little endian」형식 또는 「빅 endian」형식의 어느 쪽인지로 배열됩니다. PCM 와 같은 인코딩의 경우는, 1 개의 프레임이 지정된 시점의 모든 채널의 샘플세트로 구성되어 frame size (바이트수)는, 항상 샘플 사이즈 (바이트 단위)와 같게 됩니다. 다만, 다른 종류의 인코딩의 경우, 프레임에 일련의 샘플 전체의 대량의 압축 데이터 이외에, 샘플 이외의 추가 데이터도 포함할 수가 있습니다. 그러한 인코딩에서는, 샘플 레이트 및 샘플 사이즈는, 데이터를 PCM 에 복호화 하고 나서 참조하기 위해(때문에), 샘플 레이트나 샘플 사이즈는, frame rate나 frame size와는 완전히 다른 것이 됩니다.

AudioFormat 객체에는, 프로퍼티 세트를 포함할 수가 있습니다. 1 개의 프로퍼티은, 열쇠와 값의 페어로부터 완성됩니다. 열쇠는 String 형으로, 대응하는 프로퍼티치는 임의의 객체입니다. 프로퍼티은, 압축 형식의 bit rate 등, 추가의 형식 스펙을 지정해, 주로, 서비스 프로바이더와 오디오 형식의 추가 정보를 교환하기 위한 수단으로서 사용됩니다. 따라서, 프로퍼티은 matches(AudioFormat) 메소드내에서는 무시됩니다. 다만,(AudioFormat, AudioFormat) isConversionSupported 등, 인스톨이 끝난 서비스 프로바이더에 의존하는 메소드는, 그 서비스 프로바이더 구현에 의해, 프로퍼티을 고려하는 경우가 있습니다.

다음의 겉(표)에, 서비스 프로바이더가 사용하는 (적용 가능한 경우) 일반적인 프로퍼티의 몇개인가를 일람표 가리킵니다.

프로퍼티의 키 값의 형태 설명
" 「bitrate」" Integer 평균 bit rate (비트/초)
" 「vbr」" Boolean 파일이 가변 bit rate (VBR)로 encode 되고 있는 경우는 true
" 「quality」" Integer encode/변환의 품질 (1 ~ 100)

서비스 프로바이더 (플러그 인)의 벤더는, 서드 파티 플러그 인내에 벌써 확립되어 있는 그 외의 프로퍼티의 정보를 찾아, 같은 규칙에 따르는 것을 추천합니다.

도입된 버젼:
1.3
관련 항목:
DataLine.getFormat() , AudioInputStream.getFormat() , AudioFileFormat , FormatConversionProvider

상자의 클래스의 개요
static class AudioFormat.Encoding
          Encoding 클래스는, 오디오 스트림에 사용되는 데이터 표현의 특정의 종류를 지정합니다.
 
필드의 개요
protected  boolean bigEndian
          데이터를 빅 endian 혹은 little endian의 어느 쪽의 순서로 포함하는지를 나타냅니다.
protected  int channels
          이 형식의 오디오 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살))입니다.
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 (AudioFormat.Encoding  encoding, float sampleRate, int sampleSizeInBits, int channels, int frameSize, float frameRate, boolean bigEndian, Map <String ,Object > properties)
          파라미터를 지정해 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를 바이트수로 가져옵니다.
 Object getProperty (String  key)
          키에 의해 지정된 프로퍼티치를 가져옵니다.
 float getSampleRate ()
          샘플 레이트를 가져옵니다.
 int getSampleSizeInBits ()
          샘플의 사이즈를 가져옵니다.
 boolean isBigEndian ()
          오디오 데이터를 빅 endian 혹은 little endian의 어느 쪽의 바이트 순서로 포함하는지를 지정합니다.
 boolean matches (AudioFormat  format)
          이 형식이 지정된 형식과 일치할지 어떨지를 나타냅니다.
 Map <String ,Object > properties ()
          변경 불가능한 프로퍼티의 맵을 가져옵니다.
 String toString ()
           「PCM SIGNED 22050 Hz 16 bit mono big-endian」등의, 형식을 기술하는 캐릭터 라인을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

필드의 상세

encoding

protected AudioFormat.Encoding  encoding
이 형식에서 사용되는 오디오 인코딩 수법입니다.


sampleRate

protected float sampleRate
이 형식을 가지는 사운드의, 1 초 당에 재생 또는 녹음된 샘플수입니다.


sampleSizeInBits

protected int sampleSizeInBits
이 형식을 가지는 사운드의 각 샘플의 비트수입니다.


channels

protected int channels
이 형식의 오디오 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살))입니다.


frameSize

protected int frameSize
이 형식을 가지는 사운드의 각 프레임의 바이트수입니다.


frameRate

protected float frameRate
이 형식을 가지는 사운드의, 1 초 당에 재생 또는 녹음된 프레임수입니다.


bigEndian

protected boolean bigEndian
데이터를 빅 endian 혹은 little endian의 어느 쪽의 순서로 포함하는지를 나타냅니다.

생성자 의 상세

AudioFormat

public AudioFormat(AudioFormat.Encoding  encoding,
                   float sampleRate,
                   int sampleSizeInBits,
                   int channels,
                   int frameSize,
                   float frameRate,
                   boolean bigEndian)
파라미터를 지정해 AudioFormat 를 구축합니다. 인코딩은, 데이터 표현에 사용되는 규칙을 지정합니다. 그 외의 파라미터에 대해서는,클래스의 설명 을 참조해 주세요.

파라미터:
encoding - 오디오 인코딩 수법
sampleRate - 1 초 당의 샘플수
sampleSizeInBits - 각 샘플의 비트수
channels - 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등)
frameSize - 각 프레임의 바이트수
frameRate - 1 초 당의 프레임수
bigEndian - 단일 샘플의 데이터를 빅 endian의 바이트 순서로 포함할지 어떨지를 나타낸다 (false 는 little endian를 나타낸다)

AudioFormat

public AudioFormat(AudioFormat.Encoding  encoding,
                   float sampleRate,
                   int sampleSizeInBits,
                   int channels,
                   int frameSize,
                   float frameRate,
                   boolean bigEndian,
                   Map <String ,Object > properties)
파라미터를 지정해 AudioFormat 를 구축합니다. 인코딩은, 데이터 표현에 사용되는 규칙을 지정합니다. 그 외의 파라미터에 대해서는,클래스의 설명 을 참조해 주세요.

파라미터:
encoding - 오디오 인코딩 수법
sampleRate - 1 초 당의 샘플수
sampleSizeInBits - 각 샘플의 비트수
channels - 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등)
frameSize - 각 프레임의 바이트수
frameRate - 1 초 당의 프레임수
bigEndian - 단일 샘플의 데이터를 빅 endian의 바이트 순서로 포함할지 어떨지를 나타낸다 (false 는 little endian를 나타낸다)
properties - 형식의 프로퍼티을 포함한다 Map<String, Object> 객체
도입된 버젼:
1.5

AudioFormat

public AudioFormat(float sampleRate,
                   int sampleSizeInBits,
                   int channels,
                   boolean signed,
                   boolean bigEndian)
리니어 PCM 인코딩 및 지정된 파라미터를 가지는 AudioFormat 를 구축합니다. frame size는, 각 채널로부터 1 개의 샘플을 포함하기 위해서(때문에) 필요한 바이트수로 설정되어 frame rate는, 샘플 레이트로 설정됩니다.

파라미터:
sampleRate - 1 초 당의 샘플수
sampleSizeInBits - 각 샘플의 비트수
channels - 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등)
signed - 데이터가 부호 첨부나 부호 없음인지를 나타내는
bigEndian - 단일 샘플의 데이터를 빅 endian의 바이트 순서로 포함할지 어떨지를 나타낸다 (false 는 little endian를 나타낸다)
메소드의 상세

getEncoding

public AudioFormat.Encoding  getEncoding()
사운드의 인코딩형을 이 형식에서 가져옵니다.

반환값:
인코딩형
관련 항목:
AudioFormat.Encoding.PCM_SIGNED , AudioFormat.Encoding.PCM_UNSIGNED , AudioFormat.Encoding.ULAW , AudioFormat.Encoding.ALAW

getSampleRate

public float getSampleRate()
샘플 레이트를 가져옵니다. 압축 형식에서는, 반환값은 압축되어 있지 않은 오디오 데이터의 샘플 레이트입니다. 이 AudioFormat 을 쿼리 (AudioSystem.isConversionSupported 등)나 기능 (DataLine.Info.getFormats 등)으로 사용했을 경우, 샘플 레이트 AudioSystem.NOT_SPECIFIED 는, 모든 샘플 레이트가 허용 되는 것을 의미합니다. 이 오디오 형식의 샘플 레이트가 미정도리 때는 AudioSystem.NOT_SPECIFIED 도 돌려주어집니다.

반환값:
1 초 당의 샘플수, 또는 AudioSystem.NOT_SPECIFIED
관련 항목:
getFrameRate() , AudioSystem.NOT_SPECIFIED

getSampleSizeInBits

public int getSampleSizeInBits()
샘플의 사이즈를 가져옵니다. 압축 형식에서는, 반환값은 압축되어 있지 않은 오디오 데이터의 샘플 사이즈입니다. 이 AudioFormat 을 쿼리 (AudioSystem.isConversionSupported 등)나 기능 (DataLine.Info.getFormats 등)으로 사용했을 경우, 샘플 사이즈 AudioSystem.NOT_SPECIFIED 는, 모든 샘플 사이즈가 허용 되는 것을 의미합니다. 이 오디오 형식의 샘플 사이즈가 미정도리 때는 AudioSystem.NOT_SPECIFIED 도 돌려주어집니다.

반환값:
각 샘플의 비트수 또는 AudioSystem.NOT_SPECIFIED
관련 항목:
getFrameSize() , AudioSystem.NOT_SPECIFIED

getChannels

public int getChannels()
채널수를 가져옵니다. 이 AudioFormat 을 쿼리 (AudioSystem.isConversionSupported 등)나 기능 (DataLine.Info.getFormats 등)으로 사용했을 경우, 반환값 AudioSystem.NOT_SPECIFIED 는, 임의의 수의 채널 (다만 정의 수)이 허용 되는 것을 의미합니다.

반환값:
채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등), 또는 AudioSystem.NOT_SPECIFIED
관련 항목:
AudioSystem.NOT_SPECIFIED

getFrameSize

public int getFrameSize()
frame size를 바이트수로 가져옵니다. 이 AudioFormat 을 쿼리 (AudioSystem.isConversionSupported 등)나 기능 (DataLine.Info.getFormats 등)으로 사용했을 경우, frame size AudioSystem.NOT_SPECIFIED 는, 모든 frame size가 허용 되는 것을 의미합니다. 이 오디오 형식의 frame size가 미정도리 때는 AudioSystem.NOT_SPECIFIED 도 돌려주어집니다.

반환값:
1 프레임 당의 바이트수, 또는 AudioSystem.NOT_SPECIFIED
관련 항목:
getSampleSizeInBits() , AudioSystem.NOT_SPECIFIED

getFrameRate

public float getFrameRate()
frame rate를 1 초 당의 프레임수로 가져옵니다. 이 AudioFormat 을 쿼리 (AudioSystem.isConversionSupported 등)나 기능 (DataLine.Info.getFormats 등)으로 사용했을 경우, frame rate AudioSystem.NOT_SPECIFIED 는, 모든 frame rate가 허용 되는 것을 의미합니다. 이 오디오 형식의 frame rate가 미정도리 때는 AudioSystem.NOT_SPECIFIED 도 돌려주어집니다.

반환값:
1 초 당의 프레임수, 또는 AudioSystem.NOT_SPECIFIED
관련 항목:
getSampleRate() , AudioSystem.NOT_SPECIFIED

isBigEndian

public boolean isBigEndian()
오디오 데이터를 빅 endian 혹은 little endian의 어느 쪽의 바이트 순서로 포함하는지를 지정합니다. 샘플 사이즈가 1 바이트 이하의 경우, 반환값은 올바르지 않은 값이 됩니다.

반환값:
데이터가 빅 endian의 바이트 순서로 포함되는 경우는 true, little endian 바이트 순서의 경우는 false

properties

public Map <String ,Object > properties()
변경 불가능한 프로퍼티의 맵을 가져옵니다. 프로퍼티의 개념의 자세한 것은,클래스의 설명 을 참조해 주세요.

반환값:
모든 프로퍼티을 포함한 Map<String, Object> 객체. 프로퍼티이 1 개나 인식되지 않는 경우는, 빈 상태(empty)의 맵이 반환되는
도입된 버젼:
1.5
관련 항목:
getProperty(String)

getProperty

public Object  getProperty(String  key)
키에 의해 지정된 프로퍼티치를 가져옵니다. 프로퍼티의 개념의 자세한 것은,클래스의 설명 을 참조해 주세요.

지정한 프로퍼티이 특정의 파일 형식에서 정의되어 있지 않은 경우, 이 메소드는 null 를 돌려줍니다.

파라미터:
key - 취득하고 싶은 프로퍼티의 키
반환값:
지정된 키를 가지는 프로퍼티의 값, 또는 프로퍼티이 존재하지 않는 경우는 null
도입된 버젼:
1.5
관련 항목:
properties

matches

public boolean matches(AudioFormat  format)
이 형식이 지정된 형식과 일치할지 어떨지를 나타냅니다. 형식을 일치시키기 위해서(때문에)는, 2 개의 형식의 인코딩, 채널수, 및 1 샘플 근처의 비트수와 1 프레임 근처의 바이트수를 동일하게 할 필요가 있습니다. 또, 지정한 형식에, 어느 샘플 레이트에도 합치하는 AudioSystem.NOT_SPECIFIED 가 없는 경우는, 2 개의 형식의 샘플 레이트도 동일하게 할 필요가 있습니다. 같이 지정한 형식에, frame rate치 AudioSystem.NOT_SPECIFIED 가 없는 경우는, frame rate도 동일하게 할 필요가 있습니다. 바이트 순서 (빅 endian 또는 little endian)는, 샘플 사이즈가 1 바이트보다 큰 경우에 일치시킬 필요가 있습니다.

파라미터:
format - 일치하고 있는지 판별하는 형식
반환값:
지정된 형식이 이 형식에 일치하는 경우는 true, 그렇지 않은 경우는 false

toString

public String  toString()
「PCM SIGNED 22050 Hz 16 bit mono big-endian」등의, 형식을 기술하는 캐릭터 라인을 돌려줍니다. 캐릭터 라인의 내용은 Java Sound 의 구현에 따라서 다릅니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
형식 파라미터를 기술하는 캐릭터 라인

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.