Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12

Музыкальный плеер

02.01.2018, 21:27. Показов 3341. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать чтобы нельзя было одновременно включать несколько песен или одну и ту же самую??
В данный момент при нажатии на другие кнопки песен, прошлая продолжает играть
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
{$reference 'PresentationCore.dll'}
{$reference 'System.Windows.Forms.dll'}
 
uses
  System.Windows.Forms,
  System.Drawing;
 
var
  player: System.Windows.Media.MediaPlayer;
  MainForm: System.Windows.Forms.Form;
  B1: System.Windows.Forms.Button;
  B2: System.Windows.Forms.Button;
  B3: System.Windows.Forms.Button;
  B4: System.Windows.Forms.Button;
  B5: System.Windows.Forms.Button;
 
procedure Kolyadka(Sender: Object; Args: System.EventArgs);
begin
  player := new System.Windows.Media.MediaPlayer; {Присваиваем переменной "Player" новый экземпляр MediaPlayer'а}
  player.Open(new System.Uri('Kolyadka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл} 
end;
 
procedure Shedrivka(Sender: Object; Args: System.EventArgs);
begin
  player := new System.Windows.Media.MediaPlayer; {Присваиваем переменной "Player" новый экземпляр MediaPlayer'а}
  player.Open(new System.Uri('Shedrivka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure New_year(Sender: Object; Args: System.EventArgs);
begin
  player := new System.Windows.Media.MediaPlayer; {Присваиваем переменной "Player" новый экземпляр MediaPlayer'а}
  player.Open(new System.Uri('New year.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure stop(Sender: Object; Args: System.EventArgs);
begin
  player.Stop;
end;
 
procedure quit(Sender: Object; Args: System.EventArgs);
begin
  halt
end;
 
begin
  B1 := new Button; {Создаём кнопку}
  B1.Location := new System.Drawing.Point(100, 110); {Позиция кнопки на форме}
  B1.Text := 'Колядки'; {Текст кнопки}
  B1.Click += Kolyadka; {Процедура, выполняющаясь по нажатию}
  
  B2 := new Button; {Создаём кнопку}
  B2.Location := new System.Drawing.Point(100, 160); {Позиция кнопки на форме}
  B2.Text := 'Щедрівки'; {Текст кнопки}
  B2.Click += Shedrivka;
  
  B3 := new Button; {Создаём кнопку}
  B3.Location := new System.Drawing.Point(100, 210); {Позиция кнопки на форме}
  B3.Text := 'Новорічні пісні'; {Текст кнопки}
  B3.Click += New_year;
  
  B4 := new Button; {Создаём кнопку}
  B4.Location := new System.Drawing.Point(200, 160); {Позиция кнопки на форме}
  B4.Text := 'Пауза'; {Текст кнопки}
  B4.Click += stop;
  
  B5 := new Button; {Создаём кнопку}
  B5.Location := new System.Drawing.Point(10, 160); {Позиция кнопки на форме}
  B5.Text := 'Вихід'; {Текст кнопки}
  B5.Click += quit;
  
  MainForm := new Form;
  MainForm.Text := 'Оберіть пісню';
  
  MainForm.Controls.Add(B1); {Добавляем кнопку на форму}
  MainForm.Controls.Add(B2);
  MainForm.Controls.Add(B3);
  MainForm.Controls.Add(B4);
  MainForm.Controls.Add(B5);
  
  Application.EnableVisualStyles; {Подключаем визуальные стили}
  
  Application.Run(MainForm);
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2018, 21:27
Ответы с готовыми решениями:

Задача Про музыкальный диск
Музыкальный диск стоит x рублей n копеек, У вас имеется а рублей b копеек. Хватит ли вам денег на покупку диска ? В программе предусмотрите...

Музыкальный плеер
Подскажите пожалуйста как в Visual Studio 2012 (windows forms) сделать список воспроизведения для музыкального плеера?

музыкальный плеер
Посоветуйте как написать свой простенький музыкальный проигрыватель,может книжки необходимы нужно,или расскажите свое мнение как это делатся

11
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
03.01.2018, 10:09
А предварительная остановка плеера при смене песни не помогает?
0
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12
03.01.2018, 10:58  [ТС]
Что за предварительная остановка и как её реализовать?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
03.01.2018, 11:13
Globart, если не ошибаюсь, то уже реализовано
Pascal
41
42
43
44
procedure stop(Sender: Object; Args: System.EventArgs);
begin
  player.Stop;
end;
просто перед переключением песни нужно отрабатывать эту процедуру
0
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12
03.01.2018, 12:28  [ТС]
Но как сделать чтобы перед переключением отрабатывалась эта процедура?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33393 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
03.01.2018, 13:18
Лучший ответ Сообщение было отмечено Globart как решение

Решение

Зачем каждый раз создавать новый экземпляр? Просто проверяй, инициирован ли уже player, если да - то останавливай проигрывание, и пользуйся тем же экземпляром для проигрывания следующего файла. Если нет - только тогда создавай новый экземпляр. Как-то вот так:
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
{$reference 'PresentationCore.dll'}
{$reference 'System.Windows.Forms.dll'}
 
uses
  System.Windows.Forms,
  System.Drawing;
 
var
  player: System.Windows.Media.MediaPlayer := nil;
  MainForm: System.Windows.Forms.Form;
  B1: System.Windows.Forms.Button;
  B2: System.Windows.Forms.Button;
  B3: System.Windows.Forms.Button;
  B4: System.Windows.Forms.Button;
  B5: System.Windows.Forms.Button;
 
function GetPlayer : System.Windows.Media.MediaPlayer;
begin
  if player <> nil then 
  begin
    player.Stop;
    result := player;
  end
  else result := new System.Windows.Media.MediaPlayer; {Присваиваем переменной "Player" новый экземпляр MediaPlayer'а}
end;
 
procedure Kolyadka(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('Kolyadka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл} 
end;
 
procedure Shedrivka(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('Shedrivka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure New_year(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('New year.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure stop(Sender: Object; Args: System.EventArgs);
begin
  player.Stop;
end;
 
procedure quit(Sender: Object; Args: System.EventArgs);
begin
  halt
end;
 
begin
  B1 := new Button; {Создаём кнопку}
  B1.Location := new System.Drawing.Point(100, 110); {Позиция кнопки на форме}
  B1.Text := 'Колядки'; {Текст кнопки}
  B1.Click += Kolyadka; {Процедура, выполняющаясь по нажатию}
  
  B2 := new Button; {Создаём кнопку}
  B2.Location := new System.Drawing.Point(100, 160); {Позиция кнопки на форме}
  B2.Text := 'Щедрівки'; {Текст кнопки}
  B2.Click += Shedrivka;
  
  B3 := new Button; {Создаём кнопку}
  B3.Location := new System.Drawing.Point(100, 210); {Позиция кнопки на форме}
  B3.Text := 'Новорічні пісні'; {Текст кнопки}
  B3.Click += New_year;
  
  B4 := new Button; {Создаём кнопку}
  B4.Location := new System.Drawing.Point(200, 160); {Позиция кнопки на форме}
  B4.Text := 'Пауза'; {Текст кнопки}
  B4.Click += stop;
  
  B5 := new Button; {Создаём кнопку}
  B5.Location := new System.Drawing.Point(10, 160); {Позиция кнопки на форме}
  B5.Text := 'Вихід'; {Текст кнопки}
  B5.Click += quit;
  
  MainForm := new Form;
  MainForm.Text := 'Оберіть пісню';
  
  MainForm.Controls.Add(B1); {Добавляем кнопку на форму}
  MainForm.Controls.Add(B2);
  MainForm.Controls.Add(B3);
  MainForm.Controls.Add(B4);
  MainForm.Controls.Add(B5);
  
  Application.EnableVisualStyles; {Подключаем визуальные стили}
  
  Application.Run(MainForm);
end.
1
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12
03.01.2018, 15:43  [ТС]
Спасибо!))

Добавлено через 27 минут
А как можно реализовать паузу и продолжение песни??
Знаю что пауза это player.Pause, но команды player.Resume нет, как продолжить проигрывание песни?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33393 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
03.01.2018, 15:49
Play(), этот метод продолжит воспроизведение с текущей позиции.
1
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12
03.01.2018, 16:06  [ТС]
Но когда я создаю процедуру которая будет выполняться после нажатия на кнопку, и прописываю в ней player.Play, то песня начинает играть сначала, а не с момента паузы
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33393 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
03.01.2018, 17:37
Не воспроизводится. Если по кнопке делается именно player.Pause, а не player.Stop, как сейчас - то все нормально продолжается.
1
0 / 0 / 0
Регистрация: 02.01.2018
Сообщений: 12
03.01.2018, 17:52  [ТС]
Извиняюсь, не то посмотрел, сейчас проверил все нормально))
Вот код, если что))
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
{$reference 'PresentationCore.dll'}
{$reference 'System.Windows.Forms.dll'}
 
uses
  System.Windows.Forms,
  System.Drawing;
 
var
  player: System.Windows.Media.MediaPlayer := nil;
  MainForm: System.Windows.Forms.Form;
  B1: System.Windows.Forms.Button;
  B2: System.Windows.Forms.Button;
  B3: System.Windows.Forms.Button;
  B4: System.Windows.Forms.Button;
  B5: System.Windows.Forms.Button;
  B6: System.Windows.Forms.Button;
  B7: System.Windows.Forms.Button;
 
function GetPlayer: System.Windows.Media.MediaPlayer;
begin
  if player <> nil then 
  begin
    player.Stop;
    result := player;
  end
  else result := new System.Windows.Media.MediaPlayer; {Присваиваем переменной "Player" новый экземпляр MediaPlayer'а}
end;
 
procedure Kolyadka(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('Kolyadka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл} 
end;
 
procedure Shedrivka(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('Shedrivka.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure New_year(Sender: Object; Args: System.EventArgs);
begin
  player := GetPlayer;
  player.Open(new System.Uri('New year.mp3', System.UriKind.Relative)); {Задаём путь до файла*}
  player.Play(); {Воспроизводим файл}
end;
 
procedure pause(Sender: Object; Args: System.EventArgs);
begin
  player.pause;
end;
 
procedure resume(Sender: Object; Args: System.EventArgs);
begin
  player.Play();
end;
 
procedure stop(Sender: Object; Args: System.EventArgs);
begin
  player.Stop;
end;
 
procedure quit(Sender: Object; Args: System.EventArgs);
begin
  halt
end;
 
begin
  B1 := new Button; {Создаём кнопку}
  B1.Location := new System.Drawing.Point(100, 110); {Позиция кнопки на форме}
  B1.Text := 'Колядки'; {Текст кнопки}
  B1.Click += Kolyadka; {Процедура, выполняющаясь по нажатию}
  
  B2 := new Button; {Создаём кнопку}
  B2.Location := new System.Drawing.Point(100, 160); {Позиция кнопки на форме}
  B2.Text := 'Щедрівки'; {Текст кнопки}
  B2.Click += Shedrivka;
  
  B3 := new Button; {Создаём кнопку}
  B3.Location := new System.Drawing.Point(100, 210); {Позиция кнопки на форме}
  B3.Text := 'Новорічні пісні'; {Текст кнопки}
  B3.Click += New_year;
  
  B4 := new Button; {Создаём кнопку}
  B4.Location := new System.Drawing.Point(200, 160); {Позиция кнопки на форме}
  B4.Text := 'Стоп'; {Текст кнопки}
  B4.Click += stop;
  
  B5 := new Button; {Создаём кнопку}
  B5.Location := new System.Drawing.Point(200, 110); {Позиция кнопки на форме}
  B5.Text := 'Пауза'; {Текст кнопки}
  B5.Click += pause;
  
  B6 := new Button; {Создаём кнопку}
  B6.Location := new System.Drawing.Point(200, 210); {Позиция кнопки на форме}
  B6.Text := 'Продовжити'; {Текст кнопки}
  B6.Click += resume;
  
  B7:= new Button; {Создаём кнопку}
  B7.Location := new System.Drawing.Point(10, 160); {Позиция кнопки на форме}
  B7.Text := 'Вихід'; {Текст кнопки}
  B7.Click += quit;
  
  MainForm := new Form;
  MainForm.Text := 'Оберіть пісню';
  
  MainForm.Controls.Add(B1); {Добавляем кнопку на форму}
  MainForm.Controls.Add(B2);
  MainForm.Controls.Add(B3);
  MainForm.Controls.Add(B4);
  MainForm.Controls.Add(B5);
  MainForm.Controls.Add(B6);
  MainForm.Controls.Add(B7);
  
  Application.EnableVisualStyles; {Подключаем визуальные стили}
  
  Application.Run(MainForm);
end.
Еще раз спасибо всем!!))
0
 Аватар для lartia
68 / 2 / 0
Регистрация: 09.06.2015
Сообщений: 210
29.06.2018, 22:13
Попробовал попробовать. Выдает ошибку:
proba.pas(8,3) Fatal: Can't find unit System.Windows.Forms used by Program
Т. е. этот самый System.Windows.Forms нужно где-то взять?

Добавлено через 6 минут
Все. Понял. Я на форум не глянул. У меня же FPC.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2018, 22:13
Помогаю со студенческими работами здесь

Музыкальный плеер
Пожалуйста, напишите муз. плеер на с++, самый простой - стоп, пауза, перемотка.

Музыкальный плеер!
Здравствуйте!! Хочу обратится ко все с таким вопросом. В плеере использую библиотеку bass.dll. Хочу вывести на форму Анализатор звука(если...

Музыкальный плеер
Каким музыкальным плеером Вы пользуетесь?! Я лично пользуюсь AIMPом :)

Музыкальный плеер
Разработать приложение «Аудио плеер», с возможность открытия файлов расширения *.mp3 и возможностью создания плей-листа

Музыкальный плеер
Здравствуйте, я пишу по методичке музыкальный плеер, сейчас на этапе визуализатора, но, выдает ошибку,а в чем пробелма понять не могу,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru