Вверх ↑
Ответов: 4673
Рейтинг: 516
#1: 2010-02-13 23:25:43 ЛС | профиль | цитата
Andrey, на самом деле я испытывал только локальные плейлисты, всё что связано с радио это мне пока недоступно (трафик лимитирован).

Вот кусок кода с помощью которого я загружаю в свой проигрыватель


#pas
uses ComObj;
...

//процедура открывает плейлист
procedure TMainForm.LoadPlayListClick(Sender: TObject);
var wmplayer, playlist: OLEVariant;
i: integer;
begin
case TPopupMenu(Sender).Tag of
0 : sOpenDialog1.Filter := 'Playlist-asx|*.asx';
1 : sOpenDialog1.Filter := 'Playlist-pl|*.pl';
2 : sOpenDialog1.Filter := 'Playlist-pls|*.pls';
3 : sOpenDialog1.Filter := 'Playlist-wpl|*.wpl';
4 : sOpenDialog1.Filter := 'Playlist-m3u|*.m3u';
5 : sOpenDialog1.Filter := 'All playlist|*.asx;*.pl;*.pls;*.wpl;*.m3u';
end;

if sOpenDialog1.Execute then
begin
if (wosPlay in WaveOut.State) then
begin
YesOnWaveStop := False;
WaveOut.Stop;
YesOnWaveStop := True;
end;
sPlayList.Items.BeginUpdate;
sPlayList.Clear;
wmplayer := CreateOleObject('WMPlayer.OCX');
playlist := wmplayer.CurrentPlaylist;
playlist := wmplayer.newPlaylist('User', sOpenDialog1.FileName);
sProgress.MaxValue := playlist.Count-1;
for i := 0 to playlist.Count-1 do
with sPlayList.Items.Add do
begin
ImageIndex := -1;
Caption := playlist.Item[i].getItemInfo('Title');
SubItems.Add(playlist.Item[i].durationString);
SubItems.Add(playlist.Item[i].getItemInfo('SourceURL'));
sProgress.Progress := i;
end;
sPlayList.Items.EndUpdate;
ListCount := 0; // обнулим счётчик
idxStack := 0; // и индекс текущщей композиции
sProgress.Progress := 0;
//sProgress.MaxValue := sPlayList.Items.Count; // максимум для прогрессбара
end
else exit;
SelectFile(0);
Play(0);
playlist := unassigned;
wmplayer := unassigned;
sProgress.MaxValue := sPlayList.Items.Count;
end;

оно конечно ничего особенного но в принципе протатип скрипта, но самое парадоксальное что первую строку из плейлиста (т.е время) читает без ошибок. 00:00 нет, с чем связано это в хиасм работа с тем же обьектом понятия не имею.
карма: 6

0