Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 06.06.2011, 21:13
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
Счастье

Очень люблю эту DLL-библиотеку

Ваш алгоритм не понятен. Если в списке выбран пункт(ы), то Вы освобождаете память (BASS_Free), занимаемую этой библиотекой, потом опять предварительно загружаете библиотеку для работы с ней (BASS_Init).

Если Вы хотите освободить память, занимаемую не самой DLL, а потоком воспроизведения, то используйте данный код (я понимаю, что Вы именно это и хотите сделать):

Код:
BASS_ChannelFree(Channel);

Если немного подправить ваш код, то получится следующие (я бы делал таким образом):

Объявляете нейкую переменную типа QWORD или Cardinal в своей форме или юните, не в процедуре:

Код:
var
  Channel: Cardinal;

При запуске программы в событии TForm.OnCreate инитиализируете эту библиотеку:

Код:
procedure MyForm.MyFormCreate(Sender: TObject);
begin
  BASS_Init(-1, 44100, 2, 0, nil);  // Инитиализация
end;

В событии TButton.OnClick пишите следующие:

Код:
procedure MyForm.PlayButtonClick(Sender: TObject);
begin
  if Channel <> 0 then
  begin
    BASS_ChannelFree(Channel); // Освобождаем поток воспроизведения, если он был ранее создан
    Channel := 0;
  end;
  if MyEdit.Text <> '' then
  begin
    Channel := BASS_StreamCreateURL(PAnsiChar(MyEdit.Text), 0, 0, nil, 0);
    if Channel <> 0 then
      BASS_ChannelPlay(Channel, False);
  end;
end;

P.S. MyEdit - это TEdit, куда Вы вводите адрес URL.

При освобождении формы из памяти в событии TForm.OnDestroy пишем:

Код:
procedure MyForm.MyFormDestroy(Sender: TObject);
begin
  BASS_Free;  // Освобождение DLL из памяти
end;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025