Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Воспроизведение всех треков в директории, bass.dll 
:(
    Опции темы
Volkogriz
Дата 8.4.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: нет
Всего: 1



Доброе время суток!
Подскажите пожалуйста, как проиграть по очереди все файлы в директории?
Пробовал сам разобраться, не вышло проигрывается только последний файл в списке!  smile 

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,bass;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  ECHBUFLEN = 1200;  
  FLABUFLEN = 350;   

var
  Form1: TForm1;
  floatable: DWORD; 
  chan: DWORD;     
  rotdsp: HDSP = 0; 
  rotpos: Single;    
  echdsp: HDSP = 0;  
  echbuf: array[0..ECHBUFLEN - 1,0..1] of Single;  
  echpos: Integer;  
  fladsp: HDSP = 0;  
  flabuf: array[0..FLABUFLEN - 1,0..1] of Single; 
  flapos: Integer;  
  flas, flasinc: Single;  
implementation

{$R *.dfm}
function fmod(a, b: Single): Single;
begin
  Result := a - (b * Trunc(a / b));
end;

procedure Rotate(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); stdcall;
var
  a: DWORD;
  d: PSingle;
begin
  d := buffer;

  a := 0;
  while (a < (length div 4)) do
  begin
    d^ := d^ * Abs(Sin(rotpos));
    Inc(d);
    d^ := d^ * Abs(Cos(rotpos));

    rotpos := fmod(rotpos + 0.00003, Pi);

    Inc(d);
    a := a + 2;
  end;
end;

procedure Echo(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); stdcall;
var
  a: DWORD;
  d: PSingle;
  l, r: Single;
begin
    d := buffer;

  a := 0;
  while (a < (length div 4)) do
  begin
    l := d^ + (echbuf[echpos,1] / 2);
    Inc(d);
    r := d^ + (echbuf[echpos,0] / 2);
    Dec(d);

    { Basic "bathroom" reverb }
    d^ := l;
    echbuf[echpos,0] := l;
    Inc(d);
    d^ := r;
    echbuf[echpos,1] := r;
        echpos := echpos + 1;
        if (echpos = ECHBUFLEN) then
      echpos := 0;

    Inc(d);
    a := a + 2;
  end;
end;

procedure Flange(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); stdcall;
var
    a: DWORD;
    d: PSingle;
  f, s: Single;
  p1, p2: Integer;
begin
    d := buffer;

  a := 0;
  while (a < (length div 4)) do
  begin
    p1 := Trunc(flapos + flas) mod FLABUFLEN;
    p2 := (p1 + 1) mod FLABUFLEN;
    f := fmod(flas, 1);

    s := d^ + ((flabuf[p1, 0] * (1 - f)) + (flabuf[p2, 0] * f));
    flabuf[flapos, 0] := d^;
    d^ := s;

    Inc(d);
    s := d^ + ((flabuf[p1, 1] * (1 - f)) + (flabuf[p2, 1] * f));
    flabuf[flapos, 1] := d^;
    d^ := s;

    flapos := flapos + 1;
    if (flapos = FLABUFLEN) then
      flapos := 0;

    flas := flas + flasinc;
    if (flas < 0.0) or (flas > FLABUFLEN) then
      flasinc := -flasinc;

    Inc(d);
    a := a + 2;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  info: BASS_CHANNELINFO;
begin
    if (HIWORD(BASS_GetVersion) <> BASSVERSION) then
    begin
        MessageBox(0,'An incorrect version of BASS.DLL was loaded',0,MB_ICONERROR);
        Halt;
    end;

  BASS_SetConfig(BASS_CONFIG_FLOATDSP, 1);
  if not BASS_Init(-1, 44100, 0, Handle, nil) then
  begin
    MessageBox(0, 'Can''t initialize device', 0, 0);
    Halt;
  end;

  floatable := BASS_StreamCreate(44100, 2, BASS_SAMPLE_FLOAT, nil, 0);
  if (floatable > 0) then
  begin
    BASS_StreamFree(floatable); 
    floatable := BASS_SAMPLE_FLOAT;
  end  ;

  BASS_MusicFree(chan);
  BASS_StreamFree(chan);

  chan := BASS_StreamCreateFile(False, PChar(ExtractFilePath(Application.ExeName)+'234.mp3'{Ghola.wav}), 0, 0, floatable or BASS_SAMPLE_LOOP);
  if (chan = 0) then
    chan := BASS_MusicLoad(False, PChar(ExtractFilePath(Application.ExeName)+'234.mp3'{Ghola.wav}), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_RAMPS or floatable, 0);
  if (chan = 0) then
  begin

    Exit;
  end;
BASS_ChannelGetInfo(chan, info);
  if (info.chans <> 2) then
  begin
BASS_MusicFree(chan);
    BASS_StreamFree(chan);
    Exit;
  end;
  BASS_ChannelPlay(chan, False);
end;


end.

Зарание благодарен!
С уважением Volkogriz!
--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
AntonN
Дата 8.4.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



получить список файлов, начать играть первый, добавить обработчик окончания проигрывания, по нему играть следующий в списке.


--------------------
user posted image
PM MAIL WWW   Вверх
Volkogriz
Дата 9.4.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: нет
Всего: 1



Цитата(AntonN @  8.4.2009,  23:53 Найти цитируемый пост)
добавить обработчик окончания проигрывания, 

Подскажите именно с окончания проигрываниям пожалусто!
Всё остальное я делал!
Зарание благодарен!
С уважением Volkogriz!

--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
Данкинг
Дата 9.4.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Volkogriz @  9.4.2009,  01:19 Найти цитируемый пост)
Подскажите именно с окончания проигрываниям пожалусто!

Видимо, по таймеру проверять, играет в данный момент что-то или нет.

Добавлено через 1 минуту и 18 секунд
ЗЫ: поставь лучше компоненты NEWAC, там не такой страшный код, как здесь у тебя я вижу. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
LexProgram5
Дата 12.4.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Я тож медиаплеер сотворил, у меня какую выбереш дорожку,ту и воспроизводит smile 
PM MAIL   Вверх
MetalFan
Дата 12.4.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 5
Всего: 128



LexProgram5, малатцом! иди налей себе пива!


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Данкинг
Дата 12.4.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(LexProgram5 @ 12.4.2009,  16:37)
Я тож медиаплеер сотворил, у меня какую выбереш дорожку,ту и воспроизводит smile

Потрясающе. А если никакой дорожки не выберешь, то твой медиаплеер вообще молчит, как дохлый лось, да? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.