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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 14:08   #1
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию Проблема с воспроизведением Мр3 файлов

Осваиваю Delfi 6. Составил мультимедийный плеер, но не могу сделать так, чтобы в плей листе проигрывались все добавленные мелодии. Если я хочу прослушать несколько песен, то при добавлении в плей лист проигрывается только первая, все остальные он игнарирует, как буд-то не видит. Помогите пожалуйста разобраться.
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 14:13   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

поможем... но для начала - каким методом пользуешся для плея? наработки...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.12.2009, 14:56   #3
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию

Плей лист создал с помощью ListBox. Сформировал 3 основные формы. Одна контрольная. В первой описаны основные операции (OpenDialog, MPlayer) , Вконтрольной форме сами процедеры. И отдельно плей лист.
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 15:05   #4
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию

Может здесь чкего надо добавить или убрать.

procedure TControlForm.MediaOpenSpBtnClick(Se nder: TObject);
var
Item: TListItem;
FileName: TFileName;
i: integer;
Nf: string;
begin
with MainForm do
if MediaOpenDlg.Execute
then
begin
for i:=0 to MediaOpenDlg.files.Count-1 do

begin
Nf:=ExtractFileName(MediaOpenDlg.Fi les[i]);
MPlayer.FileName := MediaOpenDlg.FileName;
Mplayer.Open;
Mplayer.Display := ScreenPanel;
Mplayer.DisplayRect :=
Rect(0, 0, ScreenPanel.Width, ScreenPanel.Height);

Mplayer.Play;
if not MPlayer.AutoRewind then MPlayer.Previous;
LifeImage.Visible :=
not (ExtractFileExt(MPlayer.FileName) = '.avi');
LifeForm.EditSpBtn.Down := true;
LifeTimer.Enabled := true;
ControlForm.PosTimer.Enabled := true;
ControlForm.PosTrkBar.Max := MPlayer.Length;
ControlForm.PosTrkBar.Enabled := true;
ControlForm.PlaySpBtn.Enabled := true;
ControlForm.PauseSpBtn.Enabled := true;
ControlForm.StopSpBtn.Enabled := true;
ControlForm.Caption := MediaOpenDlg.FileName;
PlayListForm.PlayLB.Enabled := true;
label1.Caption:=MediaToStr(MainForm .MPlayer.Position);
ratio:=MainForm.MPlayer.Length/PosTrkBar.Max;
label2.Caption:=MediaToStr(MainForm .MPlayer.Length);
PlayListForm.PlayLB.Items.append(Nf );
end;
end;
end;
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 15:27   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...и где вы отслеживаете состояние плея? заглянитете-ка сюда
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.12.2009, 16:00   #6
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию

Что означают переменные
SoundPath в выражении
MediaPlayer1.FileName:=SoundPath+Li stbox1.Items[ListBox1.ItemIndex];
а также
except
on EMCIDeviceError do
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 16:16   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

тоже самое, что у вас
Цитата:
Nf:=ExtractFileName(MediaOpenDlg.Fi les[i]);
MPlayer.FileName := MediaOpenDlg.FileName;
второе - обработка ошибки, между except и end можете убрать.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 16.12.2009 в 16:19.
raxp вне форума Ответить с цитированием
Старый 16.12.2009, 16:30   #8
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию

procedure TControlForm.PlaySpBtnClick(Sender: TObject);
var

begin
PosTimer.Enabled := true;
ratio:=MainForm.MPlayer.Length/PosTrkBar.Max;
label2.Caption:=MediaToStr(MainForm .MPlayer.Length);
Label3.Caption:=PlayListForm.PlayLB .Items[PlayListForm.PlayLB.ItemIndex];
MainForm.MPlayer.FileName:= SoundPath+PlayListForm.PlayLB.Items[PlayListForm.PlayLB.ItemIndex]
MainForm.MPlayer.Play;
PosTimer.Enabled:=True;
PlaySpBtn.Hint:='Stop';
end;
на SoundPath выдает ошибку. Если уберу, то толку мало так как проигрывает все равно только одну мелодию а вторую не признает. при на жатии на плей проигрывает туже что и при открытии.
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 16:42   #9
dimka0986
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 16
По умолчанию

При открытии нового файла старый перестает проигрывать. Играет новый.
dimka0986 вне форума Ответить с цитированием
Старый 16.12.2009, 16:56   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
При открытии нового файла старый перестает проигрывать. Играет новый.
а должно быть по-другому? ...если вам так нужно чтобы играли одновременно, то вам плеер не нужен, используйте mcisendstring()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с воспроизведением видео Виктор Вертиев Операционные системы общие вопросы 12 07.11.2011 14:08
мр3 проигрователь с использыванием bass Palach Мультимедиа в Delphi 14 09.06.2009 21:56
Общее время мр3 трэка SERG1980 Мультимедиа в Delphi 4 06.09.2008 08:28
Получение информации из мр3 GAGARIN-NEW Мультимедиа в Delphi 2 24.03.2008 15:19
Проблема с воспроизведением видеофайлов. BIRHoFF Софт 0 22.07.2007 17:36