JavaTM 2 Platform
Standard Ed. 5.0

javax.sound.sampled
ÀÎÅÍÆäÀ̽º SourceDataLine

¸ðµç ½´ÆÛ ÀÎÅÍÆäÀ̽º:
DataLine, Line

public interface SourceDataLine
extends DataLine

¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀº µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ ¶óÀÎÀÔ´Ï´Ù. ¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀº ¹Í¼­¿¡ ´ëÇؼ­ ¼Ò½º·Î¼­ µ¿ÀÛÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÌ ¿Àµð¿À ¹ÙÀÌÆ®¸¦ ¼Ò½º µ¥ÀÌÅÍ ¶óÀο¡ Ãâ·ÂÇϸé, ¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀº ¹ÙÀÌÆ®ÀÇ ¹öÆÛ¸µÀ» ó¸®ÇØ, ±×°ÍÀ» ¹Í¼­¿¡ Àü´ÞÇÕ´Ï´Ù. ¹Í¼­´Â »ùÇÃÀ» ´Ù¸¥ ¼Ò½º·ÎºÎÅÍÀÇ »ùÇðú ¹Í½º ÇØ, ±×°ÍÀ» Ãâ·Â Æ÷Æ®µîÀÇ Å¸°ÙÀ¸·Î Àü´ÞÇÕ´Ï´Ù. Ãâ·Â Æ÷Æ®¶õ »ç¿îµå Ä«µåÀÇ ¿Àµð¿À Ãâ·Â µð¹ÙÀ̽ºµîÀÇ ÀÏÀÔ´Ï´Ù.

ÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ¸í¸í ±ÔÄ¢Àº ¶óÀΰú ¹Í¼­ÀÇ °ü°è¸¦ ¹Ý¿µÇÏ°í ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ º¸¸é, ¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀº ¿Àµð¿À µ¥ÀÌÅÍÀÇ Å¸°ÙÀÇ ¿ªÇÒÀ» ¿Ï¼öÇÕ´Ï´Ù.

¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀ» ¹Í¼­·ÎºÎÅÍ ÃëµæÇÏ·Á¸é, ÀûÀýÇÑ DataLine.Info °´Ã¼¸¦ ÁöÁ¤ÇØ Mixer getLine ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.

SourceDataLineÀÎÅÍÆäÀ̽º´Â ¿Àµð¿À µ¥ÀÌÅ͸¦ µ¥ÀÌÅÍ ¶óÀÎÀÇ ¹öÆÛ¿¡ Ãâ·ÂÇÏ´Â ¸Þ¼­µå¸¦ Á¦°øÇÕ´Ï´Ù. ¿Àµð¿À¸¦ Àç»ý ¶Ç´Â ¹Í½º ÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀº ¹öÆÛ°¡ ¾ð´õ Ç÷οì(underflow) (°ø¹éÈ­) ÇÏÁö ¾Ê´Â µ¿¾È¿¡ µ¥ÀÌÅ͸¦ Àçºü¸£°Ô ¼Ò½º µ¥ÀÌÅÍ ¶óÀο¡ Ãâ·ÂÇÕ´Ï´Ù. ¾ð´õ Ç÷οì(underflow)¿¡ ÀÇÇØ ¿Àµð¿À¿¡ ºÒ¿¬¼ÓºÎ°¡ »ý±â´Â ÀÏÀÌ ÀÖ¾î, Ŭ¸¯À½À¸·Î¼­ Áö°¢µË´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº, DataLineÀÎÅÍÆäÀ̽º·Î Á¤ÀÇµÈ available ¸Þ¼­µå¸¦ »ç¿ëÇØ, µ¥ÀÌÅÍ ¶óÀÎÀÇ ¹öÆÛ·Î ÇöÀç Å¥¿¡ µé¾î°¡ ÀÖ´Â µ¥ÀÌÅÍÀÇ ¾çÀ» ÆǺ°ÇÒ ¼ö ÀÖ½À´Ï´Ù . ºí·Ï ÇÏÁö ¾Ê°í ¹öÆÛ¿¡ Ãâ·ÂÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ·®Àº ¹öÆÛ »çÀÌÁî¿Í Å¥¿¡ µé¾î°¡ ÀÖ´Â µ¥ÀÌÅÍ·®°úÀÇ Â÷ÀÌÀÔ´Ï´Ù. ¾ð´õ Ç÷οì(underflow)¸¦ À§Çؼ­ ¿Àµð¿À Ãâ·ÂÀÇ Àü´ÞÀÌ Á¤ÁöÇßÀ» °æ¿ì´Â STOP À̺¥Æ®°¡ »ý¼ºµË´Ï´Ù. ¿Àµð¿À Ãâ·ÂÀÌ Àç°³Çϸé, START À̺¥Æ®°¡ »ý¼ºµË´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.3
°ü·Ã Ç׸ñ:
Mixer, DataLine, TargetDataLine

Áßø(Nested) Ŭ·¡½º °³¿ä
 
ÀÎÅÍÆäÀ̽º javax.sound.sampled. DataLine ·ÎºÎÅÍ »ó¼ÓµÈ Áßø(Nested) Ŭ·¡½º/ÀÎÅÍÆäÀ̽º
DataLine.Info
 
¸Þ¼­µå °³¿ä
 void open (AudioFormat  format)
          ÁöÁ¤µÈ Çü½Ä¿¡¼­ ¶óÀÎÀ» ¿­¾î, ¶óÀÎÀÌ ÇÊ¿äÇÑ system resource¸¦ ȹµæÇØ Á¶ÀÛ °¡´ÉÇÏ°Ô µÇµµ·Ï ÇÕ´Ï´Ù.
 void open (AudioFormat  format, int bufferSize)
          ÁöÁ¤µÈ Çü½Ä°ú ÁöÁ¤µÈ ¹öÆÛ »çÀÌÁî·Î ¶óÀÎÀ» ¿­¾î, ¶óÀÎÀÌ ÇÊ¿äÇÑ system resource¸¦ ȹµæÇØ Á¶ÀÛ °¡´ÉÇÏ°Ô µÇµµ·Ï ÇÕ´Ï´Ù.
 int write (byte[] b, int off, int len)
          ÀÌ ¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀ» °³ÀÔ½ÃÄÑ ¿Àµð¿À µ¥ÀÌÅ͸¦ ¹Í¼­¿¡ Ãâ·ÂÇÕ´Ï´Ù.
 
ÀÎÅÍÆäÀ̽º javax.sound.sampled. DataLine ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getLongFramePosition, getMicrosecondPosition, isActive, isRunning, start, stop
 
ÀÎÅÍÆäÀ̽º javax.sound.sampled. Line ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
 

¸Þ¼­µåÀÇ »ó¼¼

open

void open(AudioFormat  format,
          int bufferSize)
          throws LineUnavailableException 
ÁöÁ¤µÈ Çü½Ä°ú ÁöÁ¤µÈ ¹öÆÛ »çÀÌÁî·Î ¶óÀÎÀ» ¿­¾î, ¶óÀÎÀÌ ÇÊ¿äÇÑ system resource¸¦ ȹµæÇØ Á¶ÀÛ °¡´ÉÇÏ°Ô µÇµµ·Ï ÇÕ´Ï´Ù.

¹öÆÛ »çÀÌÁî´Â ¹ÙÀÌÆ® ´ÜÀ§·Î ÁöÁ¤ÇÕ´Ï´Ù¸¸, »ùÇà frame sizeÀÇ ¹è¼öÀÎ °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ¿ä°Ç¿¡ ÀûÇÕÇÏÁö ¾Ê´Â ¹öÆÛ »çÀÌÁ ÁöÁ¤ÇØ ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇϸé, IllegalArgumentException°¡ ¹ß»ýµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¬ ¶óÀÎÀÇ ½ÇÁ¦ÀÇ ¹öÆÛ »çÀÌÁî´Â ÁöÁ¤ÇÑ ¹öÆÛ »çÀÌÁî¿Í´Â ´Ù¸¥ ÀÏÀÌ ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ¼³Á¤µÈ °ªÀº °è¼ÓµÇ¾î DataLine.getBufferSize() ¸¦ È£ÃâÇϸé Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Á¶ÀÛÀÌ ¼º°øÇϸé, ¶óÀÎÀº ¿­·Á ÀÖ´Â »óÅ·μ­ ¸¶Å© µÇ¾îOPEN À̺¥Æ®°¡ ¶óÀÎÀÇ ¸®½º³Ê¿¡°Ô µð½ºÆÐÄ¡ µË´Ï´Ù.

ÀÌ¹Ì ¿­·Á ÀÖ´Â ¶óÀο¡ ´ëÇؼ­ ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ¹«È¿À̸ç, IllegalStateException°¡ ¹ß»ýµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

¶óÀο¡ µû¶ó¼­´Â ÇÑ ¹ø ´ÝÀ¸¸é ÀçÂ÷ ¿­ ¼ö°¡ ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¶óÀÎÀ» ÀçÂ÷ ¿­·Á°í Çϸé, Ç×»ó LineUnavailableException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
format - ¼³Á¤ÇÏ°í ½ÍÀº ¿Àµð¿À Çü½Ä
bufferSize - ¼³Á¤ÇÏ°í ½ÍÀº ¹öÆÛ »çÀÌÁî
¿¹¿Ü:
LineUnavailableException - ÀÚ¿øÀÇ Á¦¾àÀ» À§Çؼ­ ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
IllegalArgumentException - ¹öÆÛ »çÀÌÁî°¡ »ùÇà frame sizeÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì, ȤÀº format ÁöÁ¤ÀÌ ºÒ¿ÏÀü ¶Ç´Â ¹«È¿ÀÎ °æ¿ì
IllegalStateException - ¶óÀÎÀÌ ÀÌ¹Ì ¿­·Á ÀÖ´Â °æ¿ì
SecurityException - º¸¾È»óÀÇ Á¦¾àÀ» À§Çؼ­ ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
open(AudioFormat), Line.open(), Line.close(), Line.isOpen(), LineEvent

open

void open(AudioFormat  format)
          throws LineUnavailableException 
ÁöÁ¤µÈ Çü½Ä¿¡¼­ ¶óÀÎÀ» ¿­¾î, ¶óÀÎÀÌ ÇÊ¿äÇÑ system resource¸¦ ȹµæÇØ Á¶ÀÛ °¡´ÉÇÏ°Ô µÇµµ·Ï ÇÕ´Ï´Ù.

¹öÆÛ »çÀÌÁî´Â ±¸Çö¿¡ ÀÇÇØ ¼±Åõ˴ϴÙ. ¹öÆÛ »çÀÌÁî´Â ¹ÙÀÌÆ® ´ÜÀ§ÀÔ´Ï´Ù¸¸, »ùÇà frame sizeÀÇ ¹è¼öÀÎ °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ½Ã½ºÅÛÀÌ ¼±ÅÃÇÑ ¹öÆÛ »çÀÌÁî´Â °è¼ÓµÇ¾î DataLine.getBufferSize() ¸¦ È£ÃâÇϸé Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Á¶ÀÛÀÌ ¼º°øÇϸé, ¶óÀÎÀº ¿­·Á ÀÖ´Â »óÅ·μ­ ¸¶Å© µÇ¾îOPEN À̺¥Æ®°¡ ¶óÀÎÀÇ ¸®½º³Ê¿¡°Ô µð½ºÆÐÄ¡ µË´Ï´Ù.

ÀÌ¹Ì ¿­·Á ÀÖ´Â ¶óÀο¡ ´ëÇؼ­ ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ¹«È¿À̸ç, IllegalStateException°¡ ¹ß»ýµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

¶óÀο¡ µû¶ó¼­´Â ÇÑ ¹ø ´ÝÀ¸¸é ÀçÂ÷ ¿­ ¼ö°¡ ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¶óÀÎÀ» ÀçÂ÷ ¿­·Á°í Çϸé, Ç×»ó LineUnavailableException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
format - ¼³Á¤ÇÏ°í ½ÍÀº ¿Àµð¿À Çü½Ä
¿¹¿Ü:
LineUnavailableException - ÀÚ¿øÀÇ Á¦¾àÀ» À§Çؼ­ ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
IllegalArgumentException - format ÁöÁ¤ÀÌ ºÒ¿ÏÀü ¶Ç´Â ¹«È¿ÀÎ °æ¿ì
IllegalStateException - ¶óÀÎÀÌ ÀÌ¹Ì ¿­·Á ÀÖ´Â °æ¿ì
SecurityException - º¸¾È»óÀÇ Á¦¾àÀ» À§Çؼ­ ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
open(AudioFormat, int), Line.open(), Line.close(), Line.isOpen(), LineEvent

write

int write(byte[] b,
          int off,
          int len)
ÀÌ ¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀ» °³ÀÔ½ÃÄÑ ¿Àµð¿À µ¥ÀÌÅ͸¦ ¹Í¼­¿¡ Ãâ·ÂÇÕ´Ï´Ù. ¿ä±¸µÈ ¹ÙÀÌÆ®¼öÀÇ µ¥ÀÌÅÍ°¡ ÁöÁ¤µÈ ¿ÀÇÁ¼Â(offset)¸¦ ½ÃÁ¡À¸·Î¼­ ÁöÁ¤µÈ ¹è¿­·ÎºÎÅÍ ÀÐÇô µ¥ÀÌÅÍ ¶óÀÎÀÇ ¹öÆÛ¿¡ Ãâ·ÂÇØÁý´Ï´Ù. ÇöÀç Ãâ·ÂÇÒ ¼ö ÀÖ´Â ¾çÀ» ³Ñ´Â µ¥ÀÌÅ͸¦ Ãâ·ÂÇÏ·Á°í Çϸé (available ¸¦ ÂüÁ¶), ¿ä±¸µÈ ¾çÀÇ µ¥ÀÌÅ͸¦ Ãâ·Â³¡³¾ ¶§±îÁö ÀÌ ¸Þ¼­µå´Â ºí·Ï µË´Ï´Ù. ÀÌ°ÍÀº Ãâ·ÂÀÌ ¿ä±¸µÈ µ¥ÀÌÅÍÀÇ ¾çÀÌ µ¥ÀÌÅÍ ¶óÀÎÀÇ ¹öÆÛ »çÀÌÁ´Ù Å« °æ¿ì¿¡µµ µé¾î¸ÂÀ¾´Ï´Ù. ´Ù¸¸, ¿ä±¸µÈ ¾çÀÇ Ãâ·ÂÀÌ ³¡³ª±â Àü¿¡ µ¥ÀÌÅÍ ¶óÀÎÀÌ Å¬·Î¿ìÁî, Á¤Áö, ¶Ç´Â Ç÷¡½Ã µÇ¾úÀ» °æ¿ì´Â ¸Þ¼­µåÀÇ ºí·ÏÀÌ ÇØÁ¦µÇ¾î, ±×¶§±îÁö Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö°¡ ¸®Åϵ˴ϴ٠.

ºí·Ï µÇÁö ¾Ê°í Ãâ·ÂÇÒ ¼ö ÀÖ´Â ¹ÙÀÌÆ®¼ö´Â DataLineÀÎÅÍÆäÀ̽ºÀÇ available ¸Þ¼­µå¸¦ »ç¿ëÇØ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹ÙÀÌÆ®¼ö´Â ºí·Ï µÇÁö ¾Ê°í È®½ÇÈ÷ Ãâ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, Ãß°¡ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÏ·Á°í ÇßÀ» ¶§¿¡ ºí·Ï µÉÁö ¾î¶³Áö´Â È®½ÇÇÏÁö´Â ¾Ê½À´Ï´Ù.

Ãâ·ÂÇÏ´Â ¹ÙÀÌÆ®¼ö´Â »ùÇà frame sizeÀÇ ¹è¼öÀÎ °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. Áï, ´ÙÀ½ÀÇ Á¶°ÇÀ» ä¿ì°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

[Ãâ·ÂÇØÁö´Â ¹ÙÀÌÆ®¼ö] % [frame sizeÀÇ ¹ÙÀÌÆ®¼ö] == 0

¹Ýȯ°ªÀº Ç×»ó ÀÌ Á¶°ÇÀ» ä¿ì°í ÀÖ½À´Ï´Ù. »ùÇà frame sizeÀÇ ¹è¼ö ÀÌ¿ÜÀÇ ¹ÙÀÌÆ®¼ö¸¦ Ãâ·ÂÇÑ´Ù°í ÇÏ´Â ¿ä±¸´Â ½ÇÇàÇÏÁö ¸øÇÏ°í, IllegalArgumentException°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
b - µ¥ÀÌÅÍ ¶óÀο¡ Ãâ·ÂÇØÁö´Â µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ¹ÙÀÌÆ® ¹è¿­
len - ¹ÙÀÌÆ® ´ÜÀ§¿¡¼­ÀÇ ¹è¿­ÀÇ À¯È¿ µ¥ÀÌÅÍÀÇ ±æÀÌ (Áï, ¹ÙÀÌÆ® ´ÜÀ§¿¡¼­ÀÇ Ãâ·Â¿ä±¸ µ¥ÀÌÅÍÀÇ ¾ç)
off - ¹è¿­ÀÇ ¼±µÎ·ÎºÎÅÍÀÇ ¿ÀÇÁ¼Â(offset), ¹ÙÀÌÆ® ´ÜÀ§
¹Ýȯ°ª:
½ÇÁ¦·Î Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö
¿¹¿Ü:
IllegalArgumentException - ¿ä±¸µÈ ¹ÙÀÌÆ®¼ö°¡ »ùÇà frame sizeÀÇ ¹è¼ö°¡ ¾Æ´Ñ °æ¿ì, ¶Ç´Â len°¡ ºÎÀÇ °æ¿ì
ArrayIndexOutOfBoundsException - off°¡ ºÎÀÇ °æ¿ì, ¶Ç´Â off+len°¡ ¹è¿­ b ±æÀ̺¸´Ù Å« °æ¿ì
°ü·Ã Ç׸ñ:
TargetDataLine.read(byte[], int, int), DataLine.available()

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.