![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение тэгов из WMA и OGG [D7, WinXP]
_Sergey_ © (2005-11-26 12:58:00)Существуют ли какие-нибудь библиотеки для этого?
_Sergey_ (2005-12-01 16:10:00) [1]
> А в самом ПЛ длительность есть? может при "ручном" добавлении
> Duration_m неправильно вводится (там милисекунды должны
> быть)?
В самом плейлисте все нормально. А насчет того, что добавлять надо в мс, ничего не знал. Завтра проверю, сообщу...
Antonn (2005-12-01 12:16:00) [2]а как происходит добавление в ПЛ? Что-то перепробывал все, никак не получается с нулевой длительностью, все нормально. А если в pls сохранить, тоже нулевая?
А в самом ПЛ длительность есть? может при "ручном" добавлении Duration_m неправильно вводится (там милисекунды должны быть)?
Так же при включенном SlowADD обработчик не OnAdd, а OnAddOnTimer.
_Sergey_ (2005-12-01 10:54:00) [3]Для m3u. Pls не пользуюсь...
А процедура GetItemPl есть.
Antonn (2005-12-01 07:34:00) [4]Для какого типа - pls или m3u?
ЗЫ хм, у меня такое чувство, что в архиве старая версия... Процедура GetItemPL есть? И какая версия пишется на компоненте в дизайн-тайме?
_Sergey_ (2005-11-30 18:19:00) [5]Кстати, сохранение плейлиста работает неправильно, пришлось писать свою процедуру... Функция не сохраняет длительность каждого файла, вернее, сохраняет ноль...
Antonn (2005-11-29 17:13:00) [6]_Sergey_ (29.11.05 15:24) [6]
Как отловить нажатие кнопки Del (OnkeyPress и т.д. не подходят).
в принципе подходит, это я промахнулся в одном месте, count при удалении не обновляется:(
procedure TForm1.PlayListAdv1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var i,sum,num:integer;
begin
case key of
vk_Delete: begin
sum:=0;
num:=PlayListAdv1.GetitemsFiles.Count-1; //таким образом заново получаем кол-во элементов
for i:=0 to num do begin
sum:=sum+PlayListAdv1.GetItemDuration_m(i);
end;
sum:=trunc(sum/1000); //кол-во секунд
label1.Caption:=inttostr(sum);
end;
end;
end;
_Sergey_ (2005-11-29 15:24:00) [7]Спасибо за совет, реально помогло. А теперь еще один вопрос. Как отловить нажатие кнопки Del (OnkeyPress и т.д. не подходят). Ситуация такая: На Label показывается общая длительность плейлиста. Но, если юзер удаляет файл, то она должна меняться! Я просматриваю все песни (
for i:=0 to playlist.count-1 do. А если песня удалилась, то Count становится меньше на один. Получается нужно смотреть от 0 до Count-2. А если песен несколько? Что тогда?
Antonn (2005-11-27 19:01:00) [8]ан нет, вру:)
GetTracking - возвращает номер трека проигрываемого
OnTracking - событие при назначении треку статуса проигрываемого (номер строки тоже передает)
GetitemsFiles - составляет список путей для всех файлов в плейлисте. т.е. возвращает список путей. в принципе - нафиг не нужен
а вообще - глянь файл info_IPLAdv.txt, там описаны почти все св-ва, события и тд.
Antonn (2005-11-27 18:39:00) [9]_Sergey_ (27.11.05 18:06) [2]
pl:=PlayListAdv1.GetitemsFiles;
кстати, так лучше не делать. у TStrings есть addItems
Antonn (2005-11-27 18:36:00) [10]там есть событие, типа - OnTrack - возникает, когда трек становится выделенным и проигрывается (кстати, сразу возвращает и путь к файлу).
и OnSelect - при выделении строки.
И еще св-во GetItemTrack, возвращает нумер строки track'утой(ну той самой, которая сейчас играет)
_Sergey_ (2005-11-27 18:06:00) [11]Спасибо за ссылку! Реальный компонент!
Только мне не понятен один глюк... Добавил файлы в плейлист, пытаюсь прочитать имена файлов по двойному клику на компоненте:
for i:=0 to PlayListAdv1.Count-1 do
if PlayListAdv1.GetItemSelect(i) then n:=i;
pl:=PlayListAdv1.GetitemsFiles;
ShowMessage(pl[n]);
После клика появляется Message, а через несколько секунд выделенный файл перемещается в начало списка! В чем может быть дело?
Antonn (2005-11-26 12:59:00) [12]угу, существуют... Audio Tool поищи через яндекс.
или попробуй это: http://an-files.narod.ru/TagInfo_iPlayList.rar141Кб