Здравствуйте.
Задача такая:
Есть mp3 файлы на удаленном сервере.
Нужно средствами делфи сделать миниплеер.
Т.е. воспроизводим файл по ссылке, если он уже был скачан - берем из кеша.
Перемотка, отображение времени.
Подскажите, как подобное реализовать.
Спасибо
Воспроизведение mp3
Модератор: Модераторы
Средствами дельфи, ну это на форум по дельфи наверное. Для проигрывания mp3 можно BASS.dll попробовать взять, как в Delphi так и в FPC можно его использовать, надо только модуль импортирующий функции из dll нужный найти
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
un4seen.com
на форуме и для делфи, и для лазаря все разжевано
на форуме и для делфи, и для лазаря все разжевано
Средставим FP конечно же, ошибся.
Важна кроссплатформенность.
Попробовал BASS:
Вместо музыки - скрип, треск с прерываниями. Пробовал разные mp3.
Важна кроссплатформенность.
Попробовал BASS:
Код: Выделить всё
...
var
Form1: TForm1;
Channel : DWORD;
i:integer; Filename:string;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=0;
Filename:='/home/kos/1.mp3';
player;
end;
procedure TForm1.FormCreate(Sender: TObject);
var s:pointer;
begin
// проверка корректности загруженной BASS.DLL
// Инициализация аудио - по умолчанию, 44100hz, stereo, 16 bits
if not BASS_Init(-1,44100,0,s,s) then
begin
showmessage('Ошибка инициализация аудио');
end;
end;
procedure TForm1.player;
begin
//пытаемся загрузить файл и получить дескриптор канала
Channel := BASS_StreamCreateFile(FALSE, PChar(FileName), 0, 0, 0);
//если дескриптор канала=0 (файл по какой то причине не может быть загружен),
//выдаем сообщение об ошибке и выходим
if Channel=0 then begin ShowMessage('Ошибка загрузки Файла');exit;end;
BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, 100);
//командой BASS_ChannelPlay(Channel, False) пытаемся воспроизвести файл,
//если это невозможно, то выдаем сообщение об ошибке
if not BASS_ChannelPlay(Channel, False) then
begin ShowMessage('Ошибка воспроизведения файла');exit;end;
//присваеваем заголовку формы имя проигрываемого файла
end;
Вместо музыки - скрип, треск с прерываниями. Пробовал разные mp3.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Наверное там что-то не так с форматом, количеством каналов и т.п. Неправильно определилось. Попробуй задать вручную.
Помимо Bass, который кстати не совсем бесплатен, есть еще Audiere. Хедеры для FPC для неё тоже есть и работают, я проверял.
Помимо Bass, который кстати не совсем бесплатен, есть еще Audiere. Хедеры для FPC для неё тоже есть и работают, я проверял.
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Есть еще проект Audorra - портируется под лазаря прекрасно...
Пробовал сам, но проблемка (?) с русскими буквами в названиях файлов и путях - (наверняка НЕ проблема, но лень было рыть вглубь
Пробовал сам, но проблемка (?) с русскими буквами в названиях файлов и путях - (наверняка НЕ проблема, но лень было рыть вглубь
Mirage писал(а):Наверное там что-то не так с форматом, количеством каналов и т.п. Неправильно определилось. Попробуй задать вручную.
Помимо Bass, который кстати не совсем бесплатен, есть еще Audiere. Хедеры для FPC для неё тоже есть и работают, я проверял.
Пробовал ставить, либа не скомпилилась под linux. Пробовал последние 2 версии.
Little_Roo писал(а):Есть еще проект Audorra - портируется под лазаря прекрасно...
Пробовал сам, но проблемка (?) с русскими буквами в названиях файлов и путях - (наверняка НЕ проблема, но лень было рыть вглубь
Скачал с сайта, прописал пути к файлам в fpc.cfg.
Преобразовал демо проект. Пытаюсь скомпилить, модуль AcSysUtils.pas не находит LclIntf
