Суббота, 16.12.2017, 21:30
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Delphi » Создание mp3 плеера на Delphi » Вывод звука на нужную звуковую карту при помощи Bass.dll
Вывод звука на нужную звуковую карту при помощи Bass.dll
AK-74Дата: Вторник, 03.03.2015, 19:49 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Решил обратится к местным уважаемым гуру со своей проблемой cry В общем есть простая программа с кнопкою, при нажатии на которою играет музыка,
также есть 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)
---------------------------------------------
Вот решение моей проблемы, благо добрые люди помогли smile 

Код
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.
 
Форум » Delphi » Создание mp3 плеера на Delphi » Вывод звука на нужную звуковую карту при помощи Bass.dll
Страница 1 из 11
Поиск:


Copyright MyCorp © 2017Конструктор сайтов - uCoz