|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.sound.sampled.AudioFormat
public class AudioFormat
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) |
서비스 프로바이더 (플러그 인)의 벤더는, 서드 파티 플러그 인내에 벌써 확립되어 있는 그 외의 프로퍼티의 정보를 찾아, 같은 규칙에 따르는 것을 추천합니다.
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 |
필드의 상세 |
---|
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
를 구축합니다. 인코딩은, 데이터 표현에 사용되는 규칙을 지정합니다. 그 외의 파라미터에 대해서는,클래스의 설명
을 참조해 주세요.
encoding
- 오디오 인코딩 수법sampleRate
- 1 초 당의 샘플수sampleSizeInBits
- 각 샘플의 비트수channels
- 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등)frameSize
- 각 프레임의 바이트수frameRate
- 1 초 당의 프레임수bigEndian
- 단일 샘플의 데이터를 빅 endian의 바이트 순서로
포함할지 어떨지를 나타낸다 (false
는
little endian를 나타낸다)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>
객체public AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)
AudioFormat
를 구축합니다. frame size는, 각 채널로부터 1 개의 샘플을 포함하기 위해서(때문에) 필요한 바이트수로 설정되어 frame rate는, 샘플 레이트로 설정됩니다.
sampleRate
- 1 초 당의 샘플수sampleSizeInBits
- 각 샘플의 비트수channels
- 채널수 (물건용으로 1 개(살), 스테레오용으로 2 개(살) 등)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()
AudioSystem.isConversionSupported
등)나 기능 (DataLine.Info.getFormats
등)으로 사용했을 경우, 샘플 레이트 AudioSystem.NOT_SPECIFIED
는, 모든 샘플 레이트가 허용 되는 것을 의미합니다. 이 오디오 형식의 샘플 레이트가 미정도리 때는 AudioSystem.NOT_SPECIFIED
도 돌려주어집니다.
AudioSystem.NOT_SPECIFIED
getFrameRate()
,
AudioSystem.NOT_SPECIFIED
public int getSampleSizeInBits()
AudioSystem.isConversionSupported
등)나 기능 (DataLine.Info.getFormats
등)으로 사용했을 경우, 샘플 사이즈 AudioSystem.NOT_SPECIFIED
는, 모든 샘플 사이즈가 허용 되는 것을 의미합니다. 이 오디오 형식의 샘플 사이즈가 미정도리 때는 AudioSystem.NOT_SPECIFIED
도 돌려주어집니다.
AudioSystem.NOT_SPECIFIED
getFrameSize()
,
AudioSystem.NOT_SPECIFIED
public int getChannels()
AudioSystem.isConversionSupported
등)나 기능 (DataLine.Info.getFormats
등)으로 사용했을 경우, 반환값 AudioSystem.NOT_SPECIFIED
는, 임의의 수의 채널 (다만 정의 수)이 허용 되는 것을 의미합니다.
AudioSystem.NOT_SPECIFIED
AudioSystem.NOT_SPECIFIED
public int getFrameSize()
AudioSystem.isConversionSupported
등)나 기능 (DataLine.Info.getFormats
등)으로 사용했을 경우, frame size AudioSystem.NOT_SPECIFIED
는, 모든 frame size가 허용 되는 것을 의미합니다. 이 오디오 형식의 frame size가 미정도리 때는 AudioSystem.NOT_SPECIFIED
도 돌려주어집니다.
AudioSystem.NOT_SPECIFIED
getSampleSizeInBits()
,
AudioSystem.NOT_SPECIFIED
public float getFrameRate()
AudioSystem.isConversionSupported
등)나 기능 (DataLine.Info.getFormats
등)으로 사용했을 경우, frame rate AudioSystem.NOT_SPECIFIED
는, 모든 frame rate가 허용 되는 것을 의미합니다. 이 오디오 형식의 frame rate가 미정도리 때는 AudioSystem.NOT_SPECIFIED
도 돌려주어집니다.
AudioSystem.NOT_SPECIFIED
getSampleRate()
,
AudioSystem.NOT_SPECIFIED
public boolean isBigEndian()
true
,
little endian 바이트 순서의 경우는 false
public Map <String ,Object > properties()
클래스의 설명
을 참조해 주세요.
Map<String, Object>
객체. 프로퍼티이 1 개나 인식되지 않는 경우는, 빈 상태(empty)의 맵이 반환되는getProperty(String)
public Object getProperty(String key)
클래스의 설명
을 참조해 주세요.
지정한 프로퍼티이 특정의 파일 형식에서 정의되어 있지 않은 경우, 이 메소드는 null
를 돌려줍니다.
key
- 취득하고 싶은 프로퍼티의 키
null
properties
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 Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.