| Description | Hierarchy | Fields | Methods | Properties | 
type unavclWaveOutDevice = class(unavclInOutWavePipe)
Real time PCM audio stream playback using the sound card or other hardware device.
Usage: If components has no provider component with formatProvider=true, specify PCM stream parameters before activating: pcm_SamplesPerSec, pcm_BitsPerSample and pcm_NumChannels.
Example: refer to the vcTalkNow demo. It has waveOut_server and waveOut_client components. Both are used to playback real-time PCM stream received from remote side. In this demo, waveOut_server is a consumer of c_codec_serverIn component. That means PCM stream, produced by c_codec_serverIn will be passed to waveOut_server automatically.
![]()  | 
function doOpen(): bool; override; | 
![]()  | 
procedure AfterConstruction(); override; | 
![]()  | 
procedure createNewDevice(); override; | 
![]()  | 
procedure doSetEnableDP(value: boolean); override; | 
![]()  | 
property calcVolume; | 
![]()  | 
property deviceId; | 
![]()  | 
property enableDataProcessing; | 
![]()  | 
property inputIsPcm default false; | 
![]()  | 
property onFeedChunk: unavclPipeDataEvent read f_onFC write f_onFC; | 
![]()  | 
property onFeedDone: unavclPipeDataEvent read f_onFD write f_onFD; | 
![]()  | 
property playbackOptions: unavcPlaybackOptions read f_po write f_po; | 
![]()  | 
property waveEngine; | 
![]()  | 
property waveOutDevice: unaWaveOutDevice read getWaveOutDevice; | 
![]()  | 
function doOpen(): bool; override; | 
| 
 Assign playback options  | |
![]()  | 
procedure AfterConstruction(); override; | 
![]()  | 
procedure createNewDevice(); override; | 
| 
 Creates wave Out (playback) device.  | |
![]()  | 
procedure doSetEnableDP(value: boolean); override; | 
| 
 Sets enableDataProcessing value.  | |
![]()  | 
property calcVolume; | 
![]()  | 
property deviceId; | 
![]()  | 
property inputIsPcm default false; | 
| 
 Since waveOut device is output device, and output format is PCM, we should specify input format as not PCM.  | |
![]()  | 
property onFeedChunk: unavclPipeDataEvent read f_onFC write f_onFC; | 
| 
 Fired when another audio chunk was passed to driver for playback. If you are self-feeding the playback, it means you have to feed another chunk to achieve continuous playback. WARNING: This event is deprecated, refer to onFeedDone. <STRONG>NOTE</STRONG>: VCL is NOT multi-threading safe, and you should avoid using VCL routines and classes in this event.  | |
![]()  | 
property onFeedDone: unavclPipeDataEvent read f_onFD write f_onFD; | 
| 
 Fired when chunk was just played out by device. This is a good place for any user feedback. Since the data passed to this event was played out about 1/50 second ago, you can achieve very short delay between actual data being played back, and feedback. For example, if you draw an oscilloscope of a wave, use this event to be in synch with actual playback. <STRONG>NOTE</STRONG>: VCL is NOT multi-threading safe, and you should avoid using VCL routines and classes in this event.  | |
![]()  | 
property playbackOptions: unavcPlaybackOptions read f_po write f_po; | 
| 
 Controls how playback is started and what to do when waveout queue is out of audio data.  | |
![]()  | 
property waveEngine; | 
![]()  | 
property waveOutDevice: unaWaveOutDevice read getWaveOutDevice; | 
| 
 Returns waveOut device.  | |
(c) 2012 Lake of Soft