Показать сообщение отдельно
  #12  
Старый 30.07.2018, 02:01
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,026
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Сразу не заметил
Цитата:
Сообщение от TEKTON
...Но некоторые коды у меня не работают.
Может мне какая урезанная версия uFmod досталась...

Не работает:
Function uFMOD_PlayFile,
Function uFMOD_PlayMem,
Function uFMOD_PlayRes
...

Работают тока:
Function uFMOD_PlaySong, (Этой кстати нет в том хелпе на который ссылку привёл. Может у меня какая старая версия uFmod*а ).
Function uFMOD_Pause,
Function uFMOD_Resume,
Function uFMOD_Stop...
И не будут работать, поскольку файл импорта (ufmod.inc) их описания не содержит, а вот тамошняя uFMOD_PlaySong как раз инкаспулирует в себе их всех сразу, просто нужно передавать в неё нужные значения в соответствии с ейной орфографией, напр., чтоб файло проиграть, нужно делать примерно так
Код:
var
fn: string;
begin
 fn:= 'some.xm';
 uFMOD_PlaySong(Pointer(fn), 0, XM_FILE);
end;
с ресурсом тоже самое: сначало необходимо создать *.res файл с мелодией, тысячи примеров у нас на форуме про то, как это делать есть, главное чтоб она обязательно под типом RT_RCDATA лежала, подключить его к проекту, а дальше, с ключом XM_RESOURCE так же в функцию передаётся имя ресурса как и имя файла, поинтером

З.Ы. Ну и вдруг если время воспроизведения потребуется, то тогда можно сделать примерно так: кинуть на форму таймер и лейбл, последним добавить вот такое
Код:
function LenPlay(ds: integer): string;
var
 hour, min, sec: integer;
begin
 ds:= ds div 1000;
 min := ds div 60;
 hour:= min div 60;
 if min > 60 then min:= min mod 60;
 sec := ds mod 60;
 Result:= FormatDateTime('h:mm:ss', EncodeTime(hour, min, sec, 0));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 label1.Caption:= LenPlay(uFMOD_GetTime);
end;
Ответить с цитированием