Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2007, 22:53   #11
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

делаю так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Timer1.Enabled then Timer1.Enabled:=true;
MediaPlayer1.FileName:=Form2.ListBox1.Items[0];
MediaPlayer1.Open;
MediaPlayer1.Play;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
begin
i:=0;
If MediaPlayer1.Position=MediaPlayer1.Length then
begin
inc(i);
if i > Form2.ListBox1.Items.Count -1 then i:=0;
MediaPlayer1.FileName:=Form2.ListBox.Items[i];
MediaPlayer1.Open;
MediaPlayer1.Play;
end;

end;
В итоге проигрывается 1-й трек, потом 2-й трек, и вместо включения 3-го трека происходит зацикленное воспроизведение 2-го трека
Что я не так сделал?
Kashp вне форума Ответить с цитированием
Старый 21.09.2007, 00:00   #12
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

переменная i должна быть глобальная, и не забудь из таймера эту строку убрать
Код:
i:=0;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 21.09.2007, 09:18   #13
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

mutabor, спасибо тебе огромное!!! Все заработало!
Kashp вне форума Ответить с цитированием
Старый 28.09.2007, 08:38   #14
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

когда я писал проограмму то использовал не медиаплеер и бассплеер но там легко разобраться в работе. для воспроизведения я использовал процедуру PlayFIle? приважу ее пример
Код:
 
var
  Form1: TForm1;
  list, templist: tstrings;    // list - основной плейлист, templist - вспомогаетльный плелист
  t, tmp, index: integer;             // t - текущий трек, tmp - номер предыдущего проиграннового трека
  playf, timer, progress: boolean;              // показывает проигрывается в данный момент трек или нет
  temp: string;                // называние предыдущего проигранного трека
implementation
{$R *.dfm}
procedure tform1.num;
begin
  if t=list.Count-1 then       // если текущий трек = последней строчке тогда t=0 иначе t=t+1
  t:=0
  else
  t:=t+1;
end;
procedure tform1.playfile;
begin
  try                          // исклюистеьлная ситуация срабатывает если возникает ошибка
  if (list.Text<>'') then      // если плейлист не пуст
  begin
    with BASSPlayer1 do
    begin
    open(list.Strings[t]);                      //указываем имя файла и открываем его
    slider1.MaxValue:=playlength;  // устанавливаем максимальное значение slider'u = длине трека
    play;                      // воспроизводим
    playf:=true;               // показывам что трек воспроизведен
    timer1.Enabled:=true;      // запускаем таймер
    tmp:=t;                    // запоминаем номер выбранного трека
    temp:=listbox1.Items.Strings[t]; // запоминаем называние выбранного трека
    end;
  end
  else
  messagebox(handle, 'No Files', Pchar(appname), MB_ICONERROR+MB_OK); // если плейлист пуст то выдаем сообщение
  except                       // при возникновении ошибки делаем рекурсию т.е. переходи к следующему треку в плей листе
  num;
  playfile;
  end;
end;
а вот обработчик событий для timer
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  try
  with BASSPlayer1 do
  begin
  if progress then
  slider1.Value:=Position;
 
    if playlength=position then
    begin
      if temp<>''then
      listbox1.Items.Strings[tmp]:=temp;
    num;
    playfile;
    end;
  end;
  except
  end;
end;
Перед тем как спросить ищи на форуме и в GOOGLE

Последний раз редактировалось KORN; 28.09.2007 в 08:48.
KORN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение звука Djaconda Общие вопросы C/C++ 14 09.06.2008 00:19
Как сделать поиск файлов в папке BETONOMESHALKA Общие вопросы Delphi 3 01.02.2008 22:43
Delphi, воспроизведение муз. файлов north Win Api 3 22.01.2008 18:30
Воспроизведение приложения Петр Общие вопросы Delphi 2 25.07.2007 07:53