Delphi: Свой WinAMP в подарочной упаковке

Лозовский Александр

Xakep, номер #057, стр. 057-086-2


2) function BASS_CDInit(drive: PChar; flags: DWORD): BOOL;

Инициализирует CD функции.

drive - ставь 0.

flags - флаги - опции для громкости. Один ты уже видел выше (который 1000), а второй выглядит так: BASS_DEVICE_LEAVEVOL. Это громкость по умолчанию.

3) function BASS_Start: BOOL;

Открытие звукового выхода или resume после паузы.

Функции для работы с CD

1) function BASS_CDDoor(open:BOOL): BOOL; Выдвигает лоток сидюка, если ты передал ей TRUE. Если false, то лоток втягивается обратно.

2) function BASS_CDInDrive: BOOL;

Выясняет, есть ли аудио-CD в сидюке. Если есть, то возвращает TRUE.

3) function BASS_CDGetTracks:DWORD;

Получает количество треков на диске. Его, соответственно, и возвращает.

4) function BASS_CDGetTrackLength(track:DWORD):DWORD;

Возвращает длину трека в миллисекундах.

track - номер трека.

5) function BASS_CDPlay(track: DWORD; loop: BOOL; wait: BOOL): BOOL;

Играет заданный трек.

track - номер трека.

loop - если true, то играем циклически, наоборот - один раз.

wait - ждать или нет перед проигрышем.

6) procedure BASS_CDFree;

Освобождает ресурсы, занятые CD-аудио.

Функции для работы со звуковыми файлами

1) function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length, flags: DWORD): HSTREAM;

Создает звуковой поток из локального файла, к каковым относятся mp3, mp2, mp1, OGG и WAV. Файл может быть как на диске, так и в оперативке.

mem - если TRUE, то файл в оперативке. Если FALSE - то на диске. f - имя файла (если он на диске).

offset - смещение, с которого надо начинать. Обычно я начинаю с начала, но если у тебя другое мнение - сообщи его этому аргументу.

length - необходимое количество данных. Если ты хочешь использовать все до конца файла, то просто ставь 0.

flags - ставь 0.

Функция возвращает переменную типа HSTREAM, которая и есть хэндл новорожденного потока.

2) function BASS_StreamCreateURL(URL: PChar; offset: DWORD; flags: DWORD; save: PChar):HSTREAM;

То же, что и предыдущая функция, но поток создается не из локального, а из удаленного файла. Откуда и следуют новые аргументы:

URL - урл к файлу. Может начинаться либо с http://, либо с ftp://.

save - путь, куда класть закачанный файл. Если здесь null, значит не надо никуда сохранять.

3) function BASS_StreamGetLength(handle: HSTREAM): QWORD;

Получает приблизительную длину потока в байтах.

handle - получаем с помощью двух предыдущих функций.

Если размер в байтах тебя не удовлетворяет, воспользуйся функцией BASS_ChannelSeconds2Bytes. В ней нет ничего сложного, но она возвратит тебе уже секунды.

4) function BASS_StreamPlay(handle: HSTREAM; flush: BOOL; flags: DWORD): BOOL;

Играет заданный поток.

handle - хэндл потока.

flush - если false, поток можно приостанавливать, затем играть с места остановки. Если true, то остановка грозит возвращением к началу.

flags - если здесь будет стоять BASS_SAMPLE_LOOP, то поток будет играть ВЕЧНО.

5) function BASS_ChannelPause(handle: DWORD): BOOL;

Ставит паузу в воспроизведении чего угодно - CD, потока, сэмпла. Главное - скормить ей хэндл, который и является единственным аргументом.

Назад на стр. 057-086-1  Содержание  Вперед на стр. 057-086-3