Решил обратится к местным уважаемым гуру со своей проблемой В общем есть простая программа с кнопкою, при нажатии на которою играет музыка,
также есть ListBox1 , куда выводится список звуковых карт (устройств).
Теперь вопрос: как сделать, чтобы
музыка выводилась через звуковую карту, которая выбрана с ListBox1 ?Код
unit Unit1;
interface
uses
Windows, bass, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
ListBox1: TListBox;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
stream: DWORD;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Stream:= Bass_streamCreateFile(false, PChar('1.mp3'),0,0,0);
Bass_channelPlay(stream, false);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
ADeviceInfo: BASS_DEVICEINFO;
begin
i := 1;
while BASS_GetDeviceInfo(I, ADeviceInfo) do
begin
ListBox1.Items.Add(ADeviceInfo.name);
i := i + 1;
end;
if Bass_Init(1,44100,0,handle, nil)=false then
ShowMessage('Не могу инициализировать поток');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
BASS_FREE();
end;
end.
Добавлено (03.03.2015, 19:49)
---------------------------------------------
Вот решение моей проблемы, благо добрые люди помогли
Код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, bass, Buttons, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
stream: DWORD;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if (ListBox1.ItemIndex= -1) or (Bass_Init(StrToInt(ListBox1.Items.ValueFromIndex[ListBox1.ItemIndex]),44100,0,handle, nil)=false) then
begin
ShowMessage('Не могу инициализировать поток');
exit;
end;
Stream:= Bass_streamCreateFile(false, PChar('1.mp3'),0,0,0);
Bass_channelPlay(stream, false);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BASS_ChannelStop(stream);
BASS_Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
ADeviceInfo: BASS_DEVICEINFO;
begin
i := 0;
while BASS_GetDeviceInfo(I, ADeviceInfo) do
begin
ListBox1.Items.Add(ADeviceInfo.name + '=' + IntToStr(i));
Inc(i);
end;
end;
end.