1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 78
1

Создать плеер хотя бы с кнопкой "открыть" "играть" и с TrackBar для проигрывания mp3

19.04.2012, 19:54. Показов 34105. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне требуется создать плеер, я смотрел исходники, но они мне не подходят.
Прошу помочь создать плеер хотя бы с кнопкой "открыть" "играть" и с TrackBar для проигрывания mp3
Заранее спасибо
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2012, 19:54
Ответы с готовыми решениями:

Свой плеер для проигрывания видео
Добрый день. На данный момент я понял, что можно сделать плеер через html5 (и он будет без проблем...

Библиотека для проигрывания MP3
Всем доброго времени суток. Не могли бы подсказать библиотеку для воспроизведения mp3?...

Нужен плеер на сайт для проигрывания интернет-радио
Хочу на сайт запилить плеер с плейлистом нескольких инет-радио. http://lovi.fm/embed/ - вот что-то...

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

Посоветуйте музыкальный плеер для проигрывания *.xm файлов с трекерной музыкой
здр. пжл, посоветуйте плеер для проигрывания *.xm файлов с трекерной музыкой в Ubuntu наподобие...

35
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
19.04.2012, 23:56 2
ну это легко же
Добавь
WMPlib
Listbox
button
из панели элементов перетяни windows media player

2 раза на баттон нажми
C#
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
 String[] files, Paths;
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                files = openFileDialog1.SafeFileNames;
                Paths = openFileDialog1.FileNames;
 
                for (int i = 0; i < files.Length; i++)
                {
                    listBox1.Items.Add(files[i]);
 
                }
 
 
            }
 
 
 
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.URL = Paths[listBox1.SelectedIndex];
        }
 
      
        
    }
}
вставь ....

еще на форму не забудь openFileDialog1

и F5
1
1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 78
20.04.2012, 18:51  [ТС] 3
Мне не совсем понятно что такое WMPLib, я нуб в программировании.
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
20.04.2012, 19:25 4
Наверное найти надо ее и скачать
0
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
21.04.2012, 21:51 5
Цитата Сообщение от Roma112 Посмотреть сообщение
Мне не совсем понятно что такое WMPLib, я нуб в программировании.
на панели элементов нажми ПКМ выбрать элемент подожми минуты 2 потом СОМ-компоненты и внизу Windows Media Player
потом из панели элементов перетяни Windows Media Player на форму

Добавлено через 22 секунды
Цитата Сообщение от freest Посмотреть сообщение
Наверное найти надо ее и скачать
написал как найти)
1
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
22.04.2012, 00:17 6
Лучший ответ Сообщение было отмечено как решение

Решение

соглашусь с тем, что лучше использовать WindowsMediaPlayer, как таковой сам плеер не нужен, просто подключите в ссылках библиотеку wmp.dll, которая находится в папке Windows\System32 или Windows\SysWOW64. Не забудьте, если делаете проект на .NET4 используйте интерфейс WindowsMediaPlayer, на остальных .NET класс WindowsMediaPlayerClass. Полный код того, что вы запросили (сам проект в прикреплённых)
C#
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
using System;
using System.Windows.Forms;
using WMPLib;
 
namespace A_Player
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        WindowsMediaPlayer wmp = new WindowsMediaPlayer();
        bool pausePlay;
 
        private void button1_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            if ((ofd.ShowDialog() == DialogResult.OK) && (ofd.FileName != string.Empty))
            {
                wmp.URL = ofd.FileName;
                wmp.controls.play();
                trackBar1.Enabled = true;
                timer1.Enabled = true;
                timer1.Interval = 1000;
                label1.Text = "Playing";
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            pausePlay = !pausePlay;
            if (pausePlay)
            {
                wmp.controls.pause();
                label1.Text = "Paused";
            }
            if (!pausePlay)
            {
                wmp.controls.play();
                label1.Text = "Playing";
            }
        }
 
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            wmp.controls.currentPosition = trackBar1.Value;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            trackBar1.Maximum = Convert.ToInt32(wmp.currentMedia.duration);
            trackBar1.Value = Convert.ToInt32(wmp.controls.currentPosition);
 
            if (wmp != null)
            {
                int s = (int)wmp.currentMedia.duration;
                int h = s / 3600;
                int m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label3.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
 
                s = (int)wmp.controls.currentPosition;
                h = s / 3600;
                m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label2.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
            }
            else
            {
                label3.Text = "0:00:00";
                label2.Text = "0:00:00";
            }
        }
    }
}
Вложения
Тип файла: rar A_Player.rar (104.9 Кб, 1036 просмотров)
6
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
22.04.2012, 00:23 7
Цитата Сообщение от _lunar_ Посмотреть сообщение
соглашусь с тем, что лучше использовать WindowsMediaPlayer, как таковой сам плеер не нужен, просто подключите в ссылках библиотеку wmp.dll, которая находится в папке Windows\System32 или Windows\SysWOW64. Не забудьте, если делаете проект на .NET4 используйте интерфейс WindowsMediaPlayer, на остальных .NET класс WindowsMediaPlayerClass. Полный код того, что вы запросили (сам проект в прикреплённых)
C#
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
using System;
using System.Windows.Forms;
using WMPLib;
 
namespace A_Player
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        WindowsMediaPlayer wmp = new WindowsMediaPlayer();
        bool pausePlay;
 
        private void button1_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            if ((ofd.ShowDialog() == DialogResult.OK) && (ofd.FileName != string.Empty))
            {
                wmp.URL = ofd.FileName;
                wmp.controls.play();
                trackBar1.Enabled = true;
                timer1.Enabled = true;
                timer1.Interval = 1000;
                label1.Text = "Playing";
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            pausePlay = !pausePlay;
            if (pausePlay)
            {
                wmp.controls.pause();
                label1.Text = "Paused";
            }
            if (!pausePlay)
            {
                wmp.controls.play();
                label1.Text = "Playing";
            }
        }
 
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            wmp.controls.currentPosition = trackBar1.Value;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            trackBar1.Maximum = Convert.ToInt32(wmp.currentMedia.duration);
            trackBar1.Value = Convert.ToInt32(wmp.controls.currentPosition);
 
            if (wmp != null)
            {
                int s = (int)wmp.currentMedia.duration;
                int h = s / 3600;
                int m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label3.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
 
                s = (int)wmp.controls.currentPosition;
                h = s / 3600;
                m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label2.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
            }
            else
            {
                label3.Text = "0:00:00";
                label2.Text = "0:00:00";
            }
        }
    }
}

Зато в моем варианте есть playlist
1
_lunar_
22.04.2012, 00:27
  #8

Не по теме:

Цитата Сообщение от logo424 Посмотреть сообщение
Зато в моем варианте есть playlist :D
зато в моём варианте есть полностью рабочий trackBar с возможностью перемещения по треку, его длинна и текущее положение. Будем и дальше мериться... как дети малые :) Что ТС заказывал, то и сделал. Нужно профессионально подходить к вопросу, а не выдумывать уж извините "отсебячину".

0
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
22.04.2012, 00:44 9
Цитата Сообщение от _lunar_ Посмотреть сообщение

Не по теме:


зато в моём варианте есть полностью рабочий trackBar с возможностью перемещения по треку, его длинна и текущее положение. Будем и дальше мериться... как дети малые :) Что ТС заказывал, то и сделал. Нужно профессионально подходить к вопросу, а не выдумывать уж извините "отсебячину".

это у меня тоже работает
Миниатюры
Создать плеер хотя бы с кнопкой "открыть" "играть" и с TrackBar для проигрывания mp3  
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
22.04.2012, 00:46 10
вы реализуете через плеер, я же через форму с использованием библиотеки этого плеера. Читайте внимательнее вопрос
Цитата Сообщение от Roma112 Посмотреть сообщение
Мне требуется создать плеер...
Прошу помочь создать плеер хотя бы с кнопкой "открыть" "играть" и с TrackBar для проигрывания mp3
главное слово создать, а не использовать готовый.
если надо могу реализовать на MDX, там уж точно никакого стандартного плеера нет.
0
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
22.04.2012, 00:48 11
Цитата Сообщение от _lunar_ Посмотреть сообщение
вы реализуете через плеер, я же через форму.

Ну ладно
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
22.04.2012, 00:50 12
это главное сообщение темы, оно прикреплено сверху на всех страницах
Цитата Сообщение от logo424 Посмотреть сообщение
Вам уже прислали ГОТОВЫЙ ПЛЕЕР что не нравится то?
0
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
22.04.2012, 00:55 13
Цитата Сообщение от freest Посмотреть сообщение
это главное сообщение темы, оно прикреплено сверху на всех страницах
я уже понял

на время не посмотрел
0
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
22.04.2012, 03:45 14
_lunar_, можете, пожалуйста, написать коментарии к своему коду ? *_*
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
22.04.2012, 12:16 15
Цитата Сообщение от Tweekaz Посмотреть сообщение
_lunar_, можете, пожалуйста, написать коментарии к своему коду ? *_*
C#
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
using System;
using System.Windows.Forms;
using WMPLib; // пространство имён библиотеки Windows\System32\wmp.dll
 
namespace A_Player
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        WindowsMediaPlayer wmp = new WindowsMediaPlayer(); // переменная интерфейса WindowsMediaPlayer
        bool pausePlay; // переменная типа bool, по умолчанию равна false
 
        private void button1_Click(object sender, EventArgs e)
        {
            // создаём Диалоговое окно и выполняем условия открытия файла
            var ofd = new OpenFileDialog();
            if ((ofd.ShowDialog() == DialogResult.OK) && (ofd.FileName != string.Empty))
            {
                wmp.URL = ofd.FileName; // путь к файлу
                wmp.controls.play(); // запуск файла
                trackBar1.Enabled = true; // включаем trackBar (выключен для обработки исключений)
                timer1.Enabled = true; // включаем timer (выключен для обработки исключений)
                timer1.Interval = 1000; // задаём интервал в 1000 милисек. = 1 сек.
                label1.Text = "Playing";
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            // с помощью переменной типа bool делаем условие
            pausePlay = !pausePlay;
            if (pausePlay) // если кнопка нажата
            {
                wmp.controls.pause(); // делаем паузу
                label1.Text = "Paused";
            }
            if (!pausePlay) // если нажата ещё раз
            {
                wmp.controls.play(); // снимем паузу
                label1.Text = "Playing";
            }
        }
 
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            // положение движка определяется текущем положением трека
            wmp.controls.currentPosition = trackBar1.Value;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            // максимальное положение движка есть продолжительность трека
            trackBar1.Maximum = Convert.ToInt32(wmp.currentMedia.duration);
            trackBar1.Value = Convert.ToInt32(wmp.controls.currentPosition);
 
            // несложные математические расчёты для вычисления продолжительности трека и текущего положения
            if (wmp != null)
            {
                int s = (int)wmp.currentMedia.duration;
                int h = s / 3600;
                int m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
 
                // указываем продолжительность трека в формате чч:мм:сс
                label3.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
 
                s = (int)wmp.controls.currentPosition;
                h = s / 3600;
                m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
 
                // указываем текущее положение трека с интервалом 1 сек.
                label2.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
            }
            else
            {
                label3.Text = "0:00:00";
                label2.Text = "0:00:00";
            }
        }
    }
}
4
35 / 25 / 13
Регистрация: 12.02.2011
Сообщений: 178
Записей в блоге: 1
22.04.2012, 15:23 16
Сделай еще показ названия песни и 5+ )
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
22.04.2012, 18:31 17
Цитата Сообщение от logo424 Посмотреть сообщение
Сделай еще показ названия песни
http://download.banshee.fm/taglib-sharp/
C#
1
2
3
4
5
6
7
8
9
10
11
12
using TagLib;
...
private void button1_Click(object sender, EventArgs e)
{
    var ofd = new OpenFileDialog();
    if ((ofd.ShowDialog() == DialogResult.OK) && (ofd.FileName != string.Empty))
    {
         ...
         var file = File.Create(ofd.FileName); // не путать с System.IO.File
         Text = file.Tag.FirstPerformer + " - " + file.Tag.Title;
    }
}
3
1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 78
29.04.2012, 12:22  [ТС] 18
_lunar_, спс
0
4 / 4 / 0
Регистрация: 18.06.2012
Сообщений: 101
06.07.2012, 10:29 19
Цитата Сообщение от _lunar_ Посмотреть сообщение
соглашусь с тем, что лучше использовать WindowsMediaPlayer, как таковой сам плеер не нужен, просто подключите в ссылках библиотеку wmp.dll, которая находится в папке Windows\System32 или Windows\SysWOW64. Не забудьте, если делаете проект на .NET4 используйте интерфейс WindowsMediaPlayer, на остальных .NET класс WindowsMediaPlayerClass. Полный код того, что вы запросили (сам проект в прикреплённых)
C#
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
using System;
using System.Windows.Forms;
using WMPLib;
 
namespace A_Player
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        WindowsMediaPlayer wmp = new WindowsMediaPlayer();
        bool pausePlay;
 
        private void button1_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            if ((ofd.ShowDialog() == DialogResult.OK) && (ofd.FileName != string.Empty))
            {
                wmp.URL = ofd.FileName;
                wmp.controls.play();
                trackBar1.Enabled = true;
                timer1.Enabled = true;
                timer1.Interval = 1000;
                label1.Text = "Playing";
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            pausePlay = !pausePlay;
            if (pausePlay)
            {
                wmp.controls.pause();
                label1.Text = "Paused";
            }
            if (!pausePlay)
            {
                wmp.controls.play();
                label1.Text = "Playing";
            }
        }
 
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            wmp.controls.currentPosition = trackBar1.Value;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            trackBar1.Maximum = Convert.ToInt32(wmp.currentMedia.duration);
            trackBar1.Value = Convert.ToInt32(wmp.controls.currentPosition);
 
            if (wmp != null)
            {
                int s = (int)wmp.currentMedia.duration;
                int h = s / 3600;
                int m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label3.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
 
                s = (int)wmp.controls.currentPosition;
                h = s / 3600;
                m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);
                label2.Text = String.Format("{0:D}:{1:D2}:{2:D2}", h, m, s);
            }
            else
            {
                label3.Text = "0:00:00";
                label2.Text = "0:00:00";
            }
        }
    }
}
компилирую прикрепленный проект все работает как надо.Пытаюсь сделать также в моем коде,трэкбар не ползет(

Добавлено через 25 минут
О))разобрался))спасибо за исходник)покажи еще как громкость сделать и 5++)
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
07.07.2012, 10:24 20
Цитата Сообщение от tiprocop Посмотреть сообщение
покажи еще как громкость сделать
диапазон громкости в wmp.dll находится от 0 до 100 http://msdn.microsoft.com/en-u... 85%29.aspx
C#
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
private void trackBar2_Scroll(object sender, EventArgs e)
{
    if (trackBar2.Value == 10)
        wmp.settings.volume = 100;
    if (trackBar2.Value == 9)
        wmp.settings.volume = 90;
    if (trackBar2.Value == 8)
        wmp.settings.volume = 80;
    if (trackBar2.Value == 7)
        wmp.settings.volume = 70;
    if (trackBar2.Value == 6)
        wmp.settings.volume = 60;
    if (trackBar2.Value == 5)
        wmp.settings.volume = 50;
    if (trackBar2.Value == 4)
        wmp.settings.volume = 40;
    if (trackBar2.Value == 3)
        wmp.settings.volume = 30;
    if (trackBar2.Value == 2)
        wmp.settings.volume = 20;
    if (trackBar2.Value == 1)
        wmp.settings.volume = 10;
    if (trackBar2.Value == 0)
        wmp.settings.volume = 0;
}
в прикреплённых обновлённый плеер вместе с библиотекой taglib-sharp.dll, перемещать можно не только за рамку окна, но и за само окно.
Вложения
Тип файла: rar A_Player.rar (647.9 Кб, 507 просмотров)
4
07.07.2012, 10:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2012, 10:24
Помогаю со студенческими работами здесь

Как создать программу MP3 Плеер
Подскажите возможно ли в делфи создать свой MP3 проигрыватель?

mp3 плеер на сайте, нужно создать плейлист
Всем добрый вечер! Когда-то из шаблонов на &quot;народе&quot; слепил свой сайт, недавно его привёл в...

Free OCX для проигрывания сильно сжатых небольших MP3- файлов
Не подскажете, где можно скачать исходники или работающий Сontrol для проигывания из VB MP3 c...

Как создать свой плеер mp3 похожий на вконтакт?
Задача: 1) проигрывать свою музыку на собственном сайте, то есть радио для себя любимого, ибо...

Плеер mp3 для сайта
Здравствуйте, подскажите готовый, ну или почти готовый вариант плеера, как вконтакте, те с таким же...

Как определить длительность Mp3 файла. MP3 плеер на библиотеке BASS 2.4
В процессе поиска ответов я наткнулся на эту тему...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru