| Code: |
| procedure TForm1.LiveAudioPlayer1Format(Sender: TObject;
out pWaveFormat: PWaveFormatEx; var FreeIt: Boolean); begin FreeIt := False; pWaveFormat := WaveStorage1.Wave.WaveFormat; end; function TForm1.LiveAudioPlayer1DataPtr(Sender: TObject; out Buffer: Pointer; var NumLoops: Cardinal; var FreeIt: Boolean): Cardinal; begin FreeIt := False; NumLoops := $FFFFFFFF; // infinite Buffer := WaveStorage1.Wave.Data; Result := WaveStorage1.Wave.DataSize; end; |
| Code: |
| WHDR_BEGINLOOP or WHDR_BEGINLOOP |
| Code: |
| WHDR_BEGINLOOP or WHDR_ENDLOOP |
| Code: |
| LiveAudioPlayer1.BufferInternally := False;
procedure TForm1.LiveAudioPlayer1Format(Sender: TObject; out pWaveFormat: PWaveFormatEx; var FreeIt: Boolean); begin FreeIt := False; pWaveFormat := WaveStorage1.Wave.WaveFormat; end; function TForm1.LiveAudioPlayer1DataPtr(Sender: TObject; out Buffer: Pointer; var NumLoops: Cardinal; var FreeIt: Boolean): Cardinal; begin FreeIt := False; Buffer := WaveStorage1.Wave.Data; Result := WaveStorage1.Wave.DataSize; end; |
| Code: |
| var
AlreadyFed: Boolean = False; LiveAudioPlayer1.BufferInternally := False; procedure TForm1.LiveAudioPlayer1Format(Sender: TObject; out pWaveFormat: PWaveFormatEx; var FreeIt: Boolean); begin FreeIt := False; pWaveFormat := WaveStorage1.Wave.WaveFormat; end; function TForm1.LiveAudioPlayer1DataPtr(Sender: TObject; out Buffer: Pointer; var NumLoops: Cardinal; var FreeIt: Boolean): Cardinal; begin if not AlreadyFed then begin FreeIt := False; NumLoops := $FFFFFFF; // Infinite Buffer := WaveStorage1.Wave.Data; Result := WaveStorage1.Wave.DataSize; AlreadyFed := True; end else Result := 0; end; |
| Code: |
| object Form1: TForm1
Left = 192 Top = 114 Width = 696 Height = 480 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object CheckBox1: TCheckBox Left = 96 Top = 24 Width = 97 Height = 17 Caption = 'Active' TabOrder = 0 OnClick = CheckBox1Click end object Button1: TButton Left = 208 Top = 24 Width = 75 Height = 25 Caption = 'Break Loop' TabOrder = 1 OnClick = Button1Click end object LiveAudioPlayer1: TLiveAudioPlayer PCMFormat = Stereo16bit22050Hz BufferInternally = False OnActivate = LiveAudioPlayer1Activate OnDeactivate = LiveAudioPlayer1Deactivate OnDataPtr = LiveAudioPlayer1DataPtr Left = 40 Top = 64 end object WaveCollection1: TWaveCollection Waves = < item Name = 'chimes' Data = { // Data is removed to simplify the view... } end item Name = 'ding' Data = { // Data is removed to simplify the view... } end> Left = 40 Top = 16 end end |
| Code: |
| unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, mmSystem, WaveUtils, WaveIO, WaveOut, WavePlayers, WaveStorage, StdCtrls; type TForm1 = class(TForm) LiveAudioPlayer1: TLiveAudioPlayer; CheckBox1: TCheckBox; WaveCollection1: TWaveCollection; Button1: TButton; function LiveAudioPlayer1DataPtr(Sender: TObject; out Buffer: Pointer; var NumLoops: Cardinal; var FreeIt: Boolean): Cardinal; procedure CheckBox1Click(Sender: TObject); procedure LiveAudioPlayer1Activate(Sender: TObject); procedure LiveAudioPlayer1Deactivate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.LiveAudioPlayer1DataPtr(Sender: TObject; out Buffer: Pointer; var NumLoops: Cardinal; var FreeIt: Boolean): Cardinal; begin FreeIt := False; if (Tag >= 0) and (Tag < WaveCollection1.Waves.Count) then begin Buffer := WaveCollection1.Waves[Tag].Wave.Data; Result := WaveCollection1.Waves[Tag].Wave.DataSize; NumLoops := $FFFFFFFF; Tag := Tag + 1; end else begin Buffer := nil; Result := 0; end; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin LiveAudioPlayer1.Active := CheckBox1.Checked; end; procedure TForm1.LiveAudioPlayer1Activate(Sender: TObject); begin Tag := 0; CheckBox1.Checked := True; end; procedure TForm1.LiveAudioPlayer1Deactivate(Sender: TObject); begin CheckBox1.Checked := False; end; procedure TForm1.Button1Click(Sender: TObject); begin LiveAudioPlayer1.BreakLoop; end; end. |
output generated using printer-friendly topic mod. All times are GMT