Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 19.09.2007, 19:56   #1
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию MediaPlayer - как сделать последовательное воспроизведение mp3 файлов (именно mp3)

Здравствуйте. Мне нужна ваша помощь!
Бросаю на форму MediaPlayer и кнопку. При нажати на кнопку должны последовательно проигрываться несколько mp3 треков.
Если сделать так (см. код), то 1-й трек не проигрывается, а 2-й начинает играть.
Так вот, подскажите пожалуйста, как сделать последовательное воспроизведение mp3 файлов (именно mp3)
(Заранее извиняюсь, если опять не в том разделе тему создал )

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.FileName:='1.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;

MediaPlayer1.FileName:='2.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
Kashp вне форума Ответить с цитированием
Старый 19.09.2007, 20:11   #2
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

onTimer:
Цитата:
if mediaplayer1.Position=mediaplayer1. Length then
begin
mediaplayer1.FileName:='2.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
или вообще пользуйся TlistBox для добавления треков и тогда будет проще обрабатывать файлы(если их большэ двух)
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 19.09.2007, 21:28   #3
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от ZhekON Посмотреть сообщение
onTimer:


или вообще пользуйся TlistBox для добавления треков и тогда будет проще обрабатывать файлы(если их большэ двух)
Эээм.... Ты не мог бы поподробнее мне разжевать
Kashp вне форума Ответить с цитированием
Старый 19.09.2007, 22:02   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
const
Tracks: array[0..2] of string = ('1.mp3','2.mp3','3.mp3');

var
nomer: byte;

//FormCreate
begin
with MediaPlayer1 do
  begin
  FileName:=Tracks[0];
  Open;
  Play;
  end;
end;

//OnTimer
begin
with MediaPlayer1 do
  if mpcanplay in Capabilities then
    if Position = Length then 
      begin
      Inc(nomer);
      if nomer > 2 then nomer:=0;
      FileName:=Tracks[nomer];
      Open;
      Play;
      end;
end;
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 вне форума Ответить с цитированием
Старый 20.09.2007, 10:30   #5
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Спасибо за внимание! Я разобрался.
Kashp вне форума Ответить с цитированием
Старый 20.09.2007, 13:34   #6
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Вот значит, по совету ZhekON'a я сделал плейлист с помощью ListBox'a, в который файлы добавляются перетаскиванием. Подскажите пожалуйста, как бы мне теперь проиграть этот плейлист вне зависимости от количества треков?
Kashp вне форума Ответить с цитированием
Старый 20.09.2007, 14:39   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

смотри здесь, долго объяснять, я так понял ты плеер делаешь
я сначал подумал может звук надо в программе
http://www.programmersforum.ru/attac...4&d=1188456458
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; 20.09.2007 в 14:47.
mutabor вне форума Ответить с цитированием
Старый 20.09.2007, 15:04   #8
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
смотри здесь, долго объяснять, я так понял ты плеер делаешь
я сначал подумал может звук надо в программе
http://www.programmersforum.ru/attac...4&d=1188456458
Спасибо, сейчас буду разбираться.
Kashp вне форума Ответить с цитированием
Старый 20.09.2007, 19:36   #9
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

mutabor, до такого плеера, что в архиве, мне еще очень далеко , ты не мог бы написать процедурку только для последовательного воспроизведения?

И вот еще
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
begin
If MediaPlayer1.Position=MediaPlayer1.Length then
For i:=1 to 100 do
begin
try
MediaPlayer1.FileName:=Form2.ListBox1.Items[i];
MediaPlayer1.Open;
MediaPlayer1.Play;
except;
end;
end;
Тоесть по команде с первой формы запускается таймер на второй форме.
По идее, треки должны последовательно воспроизводиться, но воспроизводится только 1-й трек, и затем самый последний трек. Почему не воспроизводятся промежуточные? И как исправить этот код?
Kashp вне форума Ответить с цитированием
Старый 20.09.2007, 21:08   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

var i: integer; //текущий трек

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

допиши после запуска на воспроизведение этот код
if not Timer1.Enabled then Timer1.Enabled:=true; //изначально должно быть false
и можешь убрать из таймера try except
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; 20.09.2007 в 21:15.
mutabor вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя