Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35

MP3 плеер. Переключение треков по списку.

04.01.2010, 17:31. Показов 9704. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем. Надо сделать расчетку, делфи мы учили пар 5-6 от силы, смесь гремучая, и стипендию получать надо.)
Нашел в интернете туториал, на простенький медиаплеер. Там предлагают пользоваться TMediaPlayer. С горем пополам я сделал по туториалу плеер, но мне он кажеться сильно простеньким, поетому я хотел бы добавить что-то для "весу".
Покачто со всеми проблемами разбирался, но тут столкнулся с такой проблемой:
Я решил прикрутить переключение треков в плейлисте (ЛистБокс). Мне удалось ето сделать, но только с кнопкой btStop. Вот как я ето делаю (немного модифицированый код запуска на проигрывание файла):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure TForm1.PlayaClick(Sender: TObject; Button: TMPBtnType;
  var DoDefault: Boolean);
   var mp3File: string;
begin
if button=btStop then 
begin
 if ListBox1.Items.Count=0 then exit;
  if ListBox1.ItemIndex+1=ListBox1.Items.count then  {проверяет, не заканчиваеться ли список}
  begin
  ListBox1.ItemIndex:=0-1;
  end;
  mp3File := Concat(StaticText1.Caption, ListBox1.Items.Strings[ListBox1.ItemIndex+1]);
  ListBox1.ItemIndex:=ListBox1.ItemIndex+1;
 
  if not FileExists(mp3File) then begin
   ShowMessage('Ôàéë '+#13#10+ mp3File +#13#10+' íå ñóùåñòâóåò!');
   exit;
  end;
  FillID3TagInformation(mp3File, Title, Artist, Album);      {в оригинале отправляло теги файла  в едиты, но я отправляю их в лейблы}
  Progress.Max:=0;
  playa.Close;
  playa.FileName:=mp3File;
  playa.Open;
  Progress.Max := playa.Length;       {нужно для прогресс бара}
  end;
end;
Собственно в чем проблема:
если написать if button=btStop в событии MediaPlayerClick, то можно прикрутить какое-нибудь действие (я так сделал нормальнцю остановку трека), а вот если написать if button=btNext\btPrev оно думает, что ети переменные типа TUDBtnType, т.к. они где-то там используються при переключении каких-то стрелок. (Как я вычитал в хелпе делфи.)
И естественно выдает такое:
Unit1.pas(201): Incompatible types: 'TMPBtnType' and 'TUDBtnType'.
Как от такой штуки избавиться? Мне надо, что бы при событии ОнКлик оно брало не btNext:TUDBtnType, а btNext:TMPBtnType.

Прошу совета у людей знающих. Если сильно безграмотная программа - прошу не пинать, т.к. знаний моих увы мало.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2010, 17:31
Ответы с готовыми решениями:

Переключение треков в MediaPlayer-е
Привет всем. У меня такая проблема есть 2 mp3 файла как сделать так чтобы после окончания первой сразу начинала играть вторая вот код: ...

Музыкальный плеер с под загрузкой треков
Как реализовать скрипт под загрузки треков в плеер музыки после нажатия на ссылку из плейлиста без перегрузки страницы? Я не знаю JS, но...

Ускоренное проигрывание mp3 треков
Добре, njdfhboxb. Недавно, приятель установил мне заново wXP? всё вроде ничего, но вот большинство mp3 проигрываются немного в ускоренном...

22
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
12.01.2010, 02:00
Студворк — интернет-сервис помощи студентам
Вот мой будильник. Пока еще не доделанный. Исходного не посылаю так как не хочу принуждать устанавливать компонент TCOOLTRAYICON
Вложения
Тип файла: 7z Alarm.7z (3.58 Мб, 35 просмотров)
0
 Аватар для Ferz-2009
23 / 23 / 2
Регистрация: 26.12.2009
Сообщений: 51
12.01.2010, 17:35
Нормальный будильник! Только вот если хочешь, чтобы при удалении музкальных файлов не вылетала ошибка пиши так:
Delphi
1
2
3
4
5
6
7
8
var str:string;
 
if not fileexists(extractfilepath(application.exename)+'имя файла') then
Opendialog1.execute;//ну или showmessage('В папке нет музыкального файла');
str:=extractfilepath(application.exename)+'имя файла';
mediaplayer1.filename:=str;
mediaplayer1.open;
mediaplayer1.play;
Добавлено через 13 часов 24 минуты
Цитата Сообщение от Ferz-2009 Посмотреть сообщение
var str:string; if not fileexists(extractfilepath(application.e xename)+'имя файла') then Opendialog1.execute;//ну или showmessage('В папке нет музыкального файла');
После этого ставь end;
а потом уже
Цитата Сообщение от Ferz-2009 Посмотреть сообщение
str:=extractfilepath(application.exename )+'имя файла'; mediaplayer1.filename:=str; mediaplayer1.open; mediaplayer1.play;
0
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
13.01.2010, 12:19
Дело в том что я не вызываю
Delphi
1
mediaplayer1.open;
это значит что оно автоматически вызывается и ошибка будет вылетать всегда когда нет файла. Именно по-этому я и хочу отказаться от MediaPlayer и перейти Bass.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2010, 12:19
Помогаю со студенческими работами здесь

Как определить длительность Mp3 файла. MP3 плеер на библиотеке BASS 2.4
В процессе поиска ответов я наткнулся на эту тему https://www.cyberforum.ru/delphi-beginners/thread83454.html Судя по всему, создателю...

Переключение аудио и видео треков, Находясь в другой программе
В общем, прога чисто для моего пользования и полезная для меня вполне очень. Использую простой медиа плеир. Суть программы: находясь в...

Как настроить плеер для проигрывания треков со своего сайта
Здравствуйте, подскажите можно ли настроить плеер podfm на свой собственный сайт, чтобы воспроизводились mp3 файлы размещенные на...

Создать класс "Плеер", с помощью которого можно управлять списком треков
Создать класс Плеер, с помощью которого можно управлять списком треков (создать класс Трек за полями: Название трека, продолжительность)....

Переключение треков в плей-листе по нажатию кнопки "Вперёд"
Есть программа - проигрыватель медиа. Мучаюсь, не могу сделать, чтоб поочерёдно переключалось проигрывание всех треков вперёд (с одного на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru