JavaTM 2
Platform
Std.  Ed.  v1. 4.0

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

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

public interface SourceDataLine
extends DataLine

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

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

¼Ò½º µ¥ÀÌÅÍ ¶óÀÎÀº ÇØ´çÇÏ´Â DataLine.Info ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ Mixer ÀÇ getLine ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î, mixer·ÎºÎÅÍ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.

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

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

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

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

open

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

¹öÆÛ »çÀÌÁî´Â ¹ÙÀÌÆ®·Î ÁöÁ¤µË´Ï´Ù¸¸, »ùÇà ÇÁ·¹ÀÓÀÇ Á¤¼ö¸¦ Ç¥½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ Á¶°Ç¿¡ ÀûÇÕÇÏÁö ¾Ê´Â ¹öÆÛ »çÀÌÁî·Î ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), IllegalArgumentException °¡ Ç¥½ÃµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¬ ¶óÀÎÀÇ ½ÇÁ¦ÀÇ ¹öÆÛ »çÀÌÁî´Â ÁöÁ¤µÈ ¹öÆÛ »çÀÌÁî¿Í´Â ´Ù¸¥ ÀÏÀÌ ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ¼³Á¤µÈ °ªÀº ÈļÓÀÇ È£Ãâ DataLine.getBufferSize() ¿¡ ÀÇÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Á¶ÀÛÀÌ ¿Ï·áÇϸé(ÀÚ), ¶óÀÎÀº ¿©´Â °ÍÀ¸·Î¼­ ¸¶Å© µÇ¾îOPEN À̺¥Æ®°¡ ¶óÀÎÀÇ Ã»ÃëÀÚ¿¡°Ô µð½ºÆÌÄ¡ µË´Ï´Ù.

¹ú½á ¿­·Á ÀÖ´Â ¶óÀÎÀ¸·Î ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ºÎÀûÀýÇϰí,IllegalStateException °¡ Ç¥½ÃµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

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

ÆÄ¶ó¹ÌÅÍ:
format - ¹Ù¶÷Á÷ÇÑ ¿Àµð¿À Çü½Ä
bufferSize - ¹Ù¶÷Á÷ÇÑ ¹öÆÛ »çÀÌÁî
¿¹¿Ü:
LineUnavailableException - ¸®¼Ò½ºÀÇ Á¦¾àÀ» À§Çؼ­(¶§¹®¿¡) ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
IllegalArgumentException - ¹öÆÛ »çÀÌÁî°¡ »ùÇà ÇÁ·¹ÀÓÀÇ ÀûºÐ¼ö¸¦ Ç¥½ÃÇÏÁö ¾Ê´Â °æ¿ì
IllegalStateException - ¶óÀÎÀÌ ¹ú½á ¿­·Á ÀÖ´Â °æ¿ì
SecurityException - º¸¾È»óÀÇ Á¦¾àÀ» À§Çؼ­(¶§¹®¿¡) ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
open(AudioFormat) , Line.open() , Line.close() , Line.isOpen() , LineEvent

open

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

±¸ÇöÃøÀÌ ¹öÆÛ »çÀÌÁ ¼±ÅÃÇÕ´Ï´Ù. ¹öÆÛ »çÀÌÁî´Â ¹ÙÀÌÆ®·Î °áÁ¤µË´Ï´Ù¸¸, »ùÇà ÇÁ·¹ÀÓÀÇ Á¤¼ö¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ½Ã½ºÅÛÀÌ ¼±ÅÃÇÑ ¹öÆÛ »çÀÌÁî´Â ÈļÓÀÇ DataLine.getBufferSize() ¸¦ È£ÃâÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Á¶ÀÛÀÌ ¿Ï·áÇϸé(ÀÚ), ¶óÀÎÀº ¿©´Â °ÍÀ¸·Î¼­ ¸¶Å© µÇ¾îOPEN À̺¥Æ®°¡ ¶óÀÎÀÇ Ã»ÃëÀÚ¿¡°Ô µð½ºÆÌÄ¡ µË´Ï´Ù.

¹ú½á ¿­·Á ÀÖ´Â ¶óÀÎÀ¸·Î ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ºÎÀûÀýÇϰí,IllegalStateException °¡ Ç¥½ÃµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

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

ÆÄ¶ó¹ÌÅÍ:
format - ¹Ù¶÷Á÷ÇÑ ¿Àµð¿À Çü½Ä
¿¹¿Ü:
LineUnavailableException - ¸®¼Ò½ºÀÇ Á¦¾àÀ» À§Çؼ­(¶§¹®¿¡) ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
IllegalStateException - ¶óÀÎÀÌ ¹ú½á ¿­·Á ÀÖ´Â °æ¿ì
SecurityException - º¸¾È»óÀÇ Á¦¾àÀ» À§Çؼ­(¶§¹®¿¡) ¶óÀÎÀ» ¿­Áö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
open(AudioFormat, int) , Line.open() , Line.close() , Line.isOpen() , LineEvent

write

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

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

±âÀÔÇØÁö´Â ¹ÙÀÌÆ®¼ö´Â ´ÙÀ½°ú °°Àº »ùÇà ÇÁ·¹ÀÓÀÇ Á¤¼ö¸¦ Ç¥½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

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

¹Ýȯ°ªÀº Ç×»ó ÀÌ Á¶°Ç¿¡ ÀûÇÕÇÕ´Ï´Ù. »ùÇà ÇÁ·¹ÀÓÀÇ Á¤¼ö Àܸ̿¦ Ç¥½ÃÇÏ´Â ¹ÙÀÌÆ®¼ö¸¦ ±âÀÔÇÑ´Ù°í ÇÏ´Â ¿ä±¸´Â ä¿ï ¼ö°¡ ¾ø±â ¶§¹®¿¡,IllegalArgumentException °¡ Ç¥½ÃµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

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

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

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.