//播放前先要用 BASS_Init 函數進行播放裝置初始化function BASS_Init( device: Integer; {指定輸出裝置, 第一個是 1、第二個是 2; -1 表示使用當前裝置} freq: DWORD; {採樣率, 一般是 44100} flags: DWORD; {是 BASS_DEVICE_MONO 等常量的組合值, 是效果參數; 0 是預設值} win: HWND; {指定視窗控制代碼; 0 表示當前視窗} clsid: PGUID {指定一個 GUID, 用以初始化 DirectSound; nil 表示使用預設}): BOOL; stdcall; external bassdll;//當然需要從檔案或記憶體負載檔案流以後才能播放function BASS_StreamCreateFile( mem: BOOL; {從檔案載入這裡是 False; 從記憶體載入這裡是 True} f: Pointer; {檔案名稱或記憶體流的指標} offset: QWORD; {播放起始點, 單位是 1/10 毫秒; 只在參數 1: mem = False 時有效; 預設是 0} length: QWORD; {播放終止點, 單位是 1/10 毫秒; 只在參數 1: mem = False 時有效; 預設是 0} flags: DWORD {BASS_SAMPLE_3D 等參數的組合; 控制播放效果、反覆和解碼等等}): HSTREAM; stdcall; external bassdll;{另外: 在調入記憶體流時, 參數 length 要指定為流的大小}
表單設計圖:
代碼檔案:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) OpenDialog1: TOpenDialog; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormDestroy(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}uses Bass;var hs: HSTREAM; {流控制代碼}procedure TForm1.FormCreate(Sender: TObject);begin if HiWord(BASS_GetVersion) BASSVERSION then MessageBox(0, '"Bass.dll" 檔案版本不合適! ', nil, MB_ICONERROR); if not BASS_Init(-1, 44100, 0, 0, nil) then ShowMessage('初始化錯誤');end;{開啟 mp3 檔案, 並建立播放流}procedure TForm1.Button1Click(Sender: TObject);var Mp3Path: AnsiString;begin {開啟檔案} OpenDialog1.Filter := 'Mp3 檔案(*.mp3)|*.mp3|Wav 檔案(*.wav)|*wav'; if OpenDialog1.Execute then Mp3Path := AnsiString(OpenDialog1.FileName); {如果已有檔案開啟, 先要釋放它} BASS_StreamFree(hs); {建立播放流} hs := BASS_StreamCreateFile(False, PAnsiChar(Mp3Path), 0, 0, 0); {是否開啟成功, 顯示一下} if hs
表單檔案:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 117 ClientWidth = 202 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 16 Top = 17 Width = 75 Height = 25 Caption = #25171#24320 TabOrder = 0 OnClick = Button1Click end object Button2: TButton Left = 112 Top = 17 Width = 75 Height = 25 Caption = #25773#25918 TabOrder = 1 OnClick = Button2Click end object Button3: TButton Left = 112 Top = 48 Width = 75 Height = 25 Caption = #26242#20572 TabOrder = 2 OnClick = Button3Click end object Button4: TButton Left = 112 Top = 79 Width = 75 Height = 25 Caption = #20572#27490 TabOrder = 3 OnClick = Button4Click end object OpenDialog1: TOpenDialog Left = 40 Top = 56 endend