|
#1
|
||||
|
||||
|
XBass - Music plugin Code:
TYPE 01:
type
TXBassCallback = procedure(Const FPct: Integer; Const FDuration, FPosition, FCurMusicFile: WideString);
type
IXBass = Interface(IUnknown)
'{3A515F05-FBAE-4D1E-80A0-808E6FAF3187}'
function FCreate(AHandle: HWND; AFilename: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean;
function FCreateList(AHandle: HWND; AFolder: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean;
procedure Play;
procedure Stop;
procedure Pause;
procedure Resume;
function IsPaused: Boolean;
procedure Next;
procedure Prev;
function ChangeDir(const AFolder: WideString): Boolean;
function ChangeFile(const AFilename: WideString): Boolean;
function GetPosition: WideString;
function GetDuration: WideString;
function GetPct: Integer;
function GetCurFile: WideString;
function GetVolume: Integer;
procedure SetVolume(Const Vol: Integer);
procedure SeekForward(Const Sec: Integer);
procedure SeekBackward(Const Sec: Integer);
procedure DoFree;
End;
function InitXBass: IXBass;
external 'InitXBass@files:xbass_f.dll stdcall';
function DeInitXBass: Boolean;
external 'DeInitXBass@files:xbass_f.dll stdcall';
Code:
TYPE 02: type TXBassCallback = procedure(Const FPct: Integer; Const FDuration, FPosition, FCurMusicFile: WideString); function xbassCreate(AHandle: HWND; AFilename: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean; function xbassCreateList(AHandle: HWND; AFolder: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean; procedure xbassPlay; procedure xbassStop; procedure xbassPause; procedure xbassResume; function xbaseeIsPaused: Boolean; procedure xbassNext; procedure xbassPrev; function xbassChangeDir(const AFolder: WideString): Boolean; function xbassChangeFile(const AFilename: WideString): Boolean; function xbassGetPosition: WideString; function xbassGetDuration: WideString; function xbassGetPct: Integer; function xbassGetCurFile: WideString; function xbassGetVolume: Integer; procedure xbassSetVolume(Const Vol: Integer); procedure xbassSeekForward(Const Sec: Integer); procedure xbassSeekBackward(Const Sec: Integer); procedure xbassFree; Last edited by BLACKFIRE69; 09-03-2023 at 03:00. |
| The Following 11 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
| Sponsored Links |
|
#2
|
||||
|
||||
|
xbass - New Update What's New:
_ Last edited by BLACKFIRE69; 15-10-2022 at 16:23. |
|
#3
|
||||
|
||||
|
Hi friend
It is a simple doubt. I am trying with your example script. But it was played the song one time only. How repeat the song? Any solutions are available
__________________
If you will smile,You will live long Just like the haters,they are helping to improve your skills. |
|
#4
|
||||
|
||||
|
Quote:
(xbass.dll v2.0 requires "inno setup enhanced edition") xbass.dll v2.0 Quote:
information:
__________________
- All life is an experiment. The more experiments you make the better. - Last edited by Ele; 20-01-2021 at 06:26. |
|
#5
|
||||
|
||||
|
xbass.dll v3.0
Features: Quote:
Quote:
Details:
__________________
- All life is an experiment. The more experiments you make the better. - |
| The Following 4 Users Say Thank You to Ele For This Useful Post: | ||
|
#6
|
||||
|
||||
|
XBass Update Available!
Code:
TYPE 01:
type
TXBassCallback = procedure(Const FPct: Integer; Const FDuration, FPosition, FCurMusicFile: WideString);
type
IXBass = Interface(IUnknown)
'{3A515F05-FBAE-4D1E-80A0-808E6FAF3187}'
function FCreate(AHandle: HWND; AFilename: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean;
function FCreateList(AHandle: HWND; AFolder: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean;
procedure Play;
procedure Stop;
procedure Pause;
procedure Resume;
function IsPaused: Boolean;
procedure Next;
procedure Prev;
function ChangeDir(const AFolder: WideString): Boolean;
function ChangeFile(const AFilename: WideString): Boolean;
function GetPosition: WideString;
function GetDuration: WideString;
function GetPct: Integer;
function GetCurFile: WideString;
function GetVolume: Integer;
procedure SetVolume(Const Vol: Integer);
procedure SeekForward(Const Sec: Integer);
procedure SeekBackward(Const Sec: Integer);
procedure DoFree;
End;
function InitXBass: IXBass;
external 'InitXBass@files:xbass_f.dll stdcall';
function DeInitXBass: Boolean;
external 'DeInitXBass@files:xbass_f.dll stdcall';
Code:
TYPE 02: type TXBassCallback = procedure(Const FPct: Integer; Const FDuration, FPosition, FCurMusicFile: WideString); function xbassCreate(AHandle: HWND; AFilename: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean; function xbassCreateList(AHandle: HWND; AFolder: WideString; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback): Boolean; procedure xbassPlay; procedure xbassStop; procedure xbassPause; procedure xbassResume; function xbaseeIsPaused: Boolean; procedure xbassNext; procedure xbassPrev; function xbassChangeDir(const AFolder: WideString): Boolean; function xbassChangeFile(const AFilename: WideString): Boolean; function xbassGetPosition: WideString; function xbassGetDuration: WideString; function xbassGetPct: Integer; function xbassGetCurFile: WideString; function xbassGetVolume: Integer; procedure xbassSetVolume(Const Vol: Integer); procedure xbassSeekForward(Const Sec: Integer); procedure xbassSeekBackward(Const Sec: Integer); procedure xbassFree; |
|
#7
|
|||
|
|||
|
Can someone share me an example as how to use .ogg files in IXBass which was supported after xBass.dll v3.0?
|
|
#8
|
||||
|
||||
|
Quote:
it's nothing but you need to have decoders next to the 'XBass.dll'. In this case, they are 'ogg.dll' and 'vorbis*.dll'. * What's new with this release: 1. Compiled in Delphi XE to reduce the file size. - FileSize: 4.51 MB --> 497 KB (Saved: 90%) 2. Play through memory. - Since this build, you can play files through memory, instead of having them on the hard drive. - However, you need to use 'InnoSetup Enhanced Edition' or 'FXStream' to utilize this feature. Code:
function xbassCreateFromMem(AHandle: HWND; const Buffer: PAnsiChar; const Count, BassType: Cardinal; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback1): Boolean;
function xbassChangeMem(const Buffer: PAnsiChar; const Count: Cardinal): Boolean;
--------------------------------
type
IXBass = Interface(IUnknown)
'{3A515F05-FBAE-4D1E-80A0-808E6FAF3187}'
...
function FCreateFromMem(AHandle: HWND; const Buffer: PAnsiChar; const Count, BassType: Cardinal; ASpeed: Single; RepeatOn: Boolean; ACallback: TXBassCallback1): Boolean;
function ChangeMem(const Buffer: PAnsiChar; const Count: Cardinal): Boolean;
...
end;
* InnoSetup Enhanced Edition: Code:
procedure InitializeWizard();
var
Buffer: AnsiString;
Count: Cardinal;
begin
//
Count := ExtractTemporaryFileSize('{#MusicFileOnly}');
SetLength(Buffer, Count);
ExtractTemporaryFileToBuffer('{#MusicFileOnly}', CastAnsiStringToInteger(Buffer));
//
ExtractTemporaryFile('ogg.dll');
ExtractTemporaryFile('vorbis.dll');
ExtractTemporaryFile('vorbisenc.dll');
ExtractTemporaryFile('vorbisfile.dll');
CreateOrChange;
PlayNextBtn.Enabled := False;
PlayPrevBtn.Enabled := False;
if not xbassCreateFromMem(WizardForm.Handle,
Buffer,
Count,
C_XBASS_OGG,
1, True, @MusicCallback) then
MsgBox('XBass - error(s) occured while creating.', mbError, MB_OK);
end;
* FXStream: Code:
procedure InitializeWizard();
var
Buffer: AnsiString;
Count: Cardinal;
begin
//
Count := FXUnPckrExtractFileSize('{#MusicFileOnly}');
SetLength(Buffer, Count);
FXUnPckrExtractToBuffer2A('{#MusicFileOnly}', Buffer, Count);
//
ExtractTemporaryFile('ogg.dll');
ExtractTemporaryFile('vorbis.dll');
ExtractTemporaryFile('vorbisenc.dll');
ExtractTemporaryFile('vorbisfile.dll');
CreateOrChange;
PlayNextBtn.Enabled := False;
PlayPrevBtn.Enabled := False;
if not xbassCreateFromMem(WizardForm.Handle,
Buffer,
Count,
C_XBASS_OGG,
1, True, @MusicCallback) then
MsgBox('XBass - error(s) occured while creating.', mbError, MB_OK);
{ CleanUp }
FXUnPckrFree;
end;
. |
| The Following 7 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (14-07-2024), Ele (16-08-2024), Fak Eid (18-07-2024), hitman797 (14-07-2024), Lord.Freddy (14-07-2024), ScOOt3r (14-07-2024), y_thelastknight (03-08-2024) | ||
|
#9
|
|||
|
|||
|
Hi Blackfire,
With the latest update, it seems that the spectrum is not responding to the music. If it is working as expected, can you please demonstrate it with some example? |
|
#10
|
||||
|
||||
|
Quote:
to function correctly, the 'spectrum' requires the xbass.dll to be compiled with a newer version of Delphi. in the last release, i compiled xbass with an older Delphi version to reduce file size, as newer Delphi versions typically produce larger executables. here's the same xbass.dll compiled with a newer version of Delphi. the spectrum works as expected with both vanilla InnoSetup and FMXInno. . |
| The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| QUERY: editing CloneCD images & best for game data & music CDs | andwan0 | CD/DVD Software & Utilities | 2 | 18-05-2009 18:13 |
| HELP: CloneCD+cuesheet games no music | dhruba.bandopadhyay | CD/DVD Copy Protections & Utilities | 1 | 07-10-2006 00:45 |
| srs soundtrack | mCrvn | Media Files | 0 | 14-06-2005 11:44 |
| problems finding game music | Waffle King | PS2 Games | 0 | 18-08-2003 07:51 |
| music but no music | felt | DC Games | 0 | 16-03-2001 15:34 |