Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/104: Рейтинг темы: голосов - 104, средняя оценка - 4.52
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22

Управление плеером WindowsMediaPlayer

16.03.2011, 19:12. Показов 20741. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал писать плеер под тач скрин монитор 7 дюймов для автомобиля.
Но сам по себе я новичек в написании програм все что я нашел в интернете внедрено в плеер.
Но столкнулся со следующими проблемами которые не смог победить.
1. В лист проигрывания необходимо добавлять не по файлам а папку целиком.
2. После проигрывания последнего файла плейлиста должен начать проигрываться первый фаил.
3. После закрытия плеера должно запоминаться все открытое программой чтоб при открытии ничего не надо было вводить поновой.
4. не смог победить элемент управления движок прокрутки файла.
Вобщем кто чем может помогите пожалуйста и не пинайте жестоко лоха.
Вот код программы:
в openFileDialog1 в фильтре прописано следующее " MP3 Files|*.mp3|WAV Files|*.wav "
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
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
 
namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
 
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        string[] files, paths;
 
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        //Лист бокс для добавления файлов
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.URL = paths[listBox1.SelectedIndex];
        }
 
 
        // кнопка добавления файлов
        private void button3_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                files = openFileDialog1.SafeFileNames;
                paths = openFileDialog1.FileNames;
                for (int i = 0; i < files.Length; i++)
                {
                    listBox1.Items.Add(files[i]);
                }
            }
        }
 
        // кнопка выхода из программы
        private void button4_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
 
//КНОПКИ УПРАВЛЕНИЯ ПЛЕЕРОМ
 
        // кнопка проигрывания
        private void button1_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }
 
        // кнопка стоп
        private void button2_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }
 
        // кнопка паузы
        private void button5_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.pause();
        }
 
        // кнопка переключения на следующий трек
        private void button6_Click(object sender, EventArgs e)
        {
            (listBox1.SelectedIndex)++;
        }
 
       // кнопка переключенияна предыдущий трек
        private void button7_Click(object sender, EventArgs e)
        {
            (listBox1.SelectedIndex)--;
        }
 
        // кнопка увеличения звука
        private void button8_Click(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume < 100)
            {
                axWindowsMediaPlayer1.settings.volume++;
            }
        }
 
        // кнопка уменьшения звука
        private void button9_Click(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume > 0)
            {
                axWindowsMediaPlayer1.settings.volume--;
            }
        }
 
        // движок положения проигрывания
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.currentPosition = trackBar1.Value;
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2011, 19:12
Ответы с готовыми решениями:

Управление плеером с клавиатуры
Нужно сделать так, чтобы при неактивном плеере нажатие на пробел вызывало play/pause в плеере. Сразу скажу, читал тему Послать нажатие...

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

Управление WM плеером и другими
С наступающим товарищи! Интересует тема управление виндосовским плеером и другими не помешает, управление воспроизведением. Но думаю все...

11
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22
29.03.2011, 18:23  [ТС]
Удалось кое что решить в проекте плеера.
Теперь кнопки громкости при удержании изменяют громкость автоматически.
Добавление в плейлист теперь происходит папками а не отдельными файлами. и код плеера выглядит теперь таким образом.
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
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace MP3
{
    public partial class MediaPlayer : Form
    {
        public MediaPlayer()
        {
            InitializeComponent();
        }
 
        private void MediaPlayer_Load(object sender, EventArgs e)
        {
        }
 
        //КНОПКИ УПРАВЛЕНИЯ ПЛЕЕРОМ
 
        // кнопка проигрывания
        private void button1_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.play(); 
        }
 
        // кнопка стоп
        private void button2_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }
 
        // кнопка паузы
        private void button3_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.pause();
        }
 
        // кнопка переключения на предыдущий трек
        private void button4_Click(object sender, EventArgs e)
        {
            (listBox1.SelectedIndex)--;
        }
 
        // кнопка переключения на следующий трек
        private void button5_Click(object sender, EventArgs e)
        {
            (listBox1.SelectedIndex)++;
        }
 
        // кнопка увеличения громкости
        private void button6_Click(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume < 100)
            {
                axWindowsMediaPlayer1.settings.volume++;
            }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume < 100)
            {
                axWindowsMediaPlayer1.settings.volume++;
            }
        }
        private void button6_MouseDown(object sender, MouseEventArgs e)
        {
            timer1.Start();
        }
        private void button6_MouseUp(object sender, MouseEventArgs e)
        {
            timer1.Stop();
        }
 
        // кнопка уменьшения громкости
        private void button7_Click(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume > 0)
            {
                axWindowsMediaPlayer1.settings.volume--;
            }
        }
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (axWindowsMediaPlayer1.settings.volume > 0)
            {
                axWindowsMediaPlayer1.settings.volume--;
            }
        }
        private void button7_MouseDown(object sender, MouseEventArgs e)
        {
            timer2.Start();
        }
        private void button7_MouseUp(object sender, MouseEventArgs e)
        {
            timer2.Stop();
        }
 
        // кнопка выхода из программы
        private void button10_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        // кнопка открытия папки
        private void button8_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog theFBD = new FolderBrowserDialog();
            if (theFBD.ShowDialog() == DialogResult.OK)
            {
                foreach (string currentFile in System.IO.Directory.GetFiles(theFBD.SelectedPath))
                {
                    this.listBox1.Items.Add(currentFile);
                }
            }
        }
        public int currentFile { get; set; }
 
        //кнопка очистки плейлиста
        private void button9_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }
 
        //Листбокс для добавления файлов
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.URL = this.listBox1.Text;
        }
 
        //Диалог открытия файлов
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
        string[] files, paths;
    }
}
Осталось решить как сделать привязку ползунка к положению проигрывания конкретного файла.
Переход от одного трека к другому в автоматическом режиме и переход от последнего трека плейлиста после окончания проигрывания к первому треку.
Я все еще надеюсь что найдутся люди которые мне в данной проблеме помогут.
0
 Аватар для kerbyteflon
78 / 79 / 21
Регистрация: 10.04.2010
Сообщений: 262
29.03.2011, 20:08
Мне вот интересно у тебя магнитола с windows или системный блок в бардачке!?
0
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22
29.03.2011, 22:15  [ТС]
Цитата Сообщение от kerbyteflon Посмотреть сообщение
Мне вот интересно у тебя магнитола с windows или системный блок в бардачке!?
Я не могу рекламировать здесь чужие сайты на более подробную информацию вы можите получить набрав в поисковике CARPC.
А в кратце в приборную панель врезается семидюймовый монитор с тач скрином, с которого собственно и идет управление всем. У кого где а у меня лично стоит под пассажирским сидением системный блок с системой Win XP а под водительским четырехканальный усилитель. Как соединяется все я думаю объяснять не надо.
Преимущества сего изобретения то что все что можно установить на компьютер будет работать и в машине. Вот к примеру список того чем я пользуюсь. Проигрывание музыки, видео, использование компьютера как прибор громкой связи, ведение мониторинга производимых работ с автомобилем, GPS навигация ( у меня установлено три программы навигации в зависимости от того куда я еду той и пользуюсь), через USB порт подключение к диагностической колодке автомобиля и получения всей информации по автомобилю, и наконец просто видеорегистрация.
Минусы всей этой приблуды что есть очень мало программ заточенных под управление тачскрин. И как правило эти программы не удобные и дорогие. Вот и приходится озобретать колесо. В данном случае мне нужен аудио плеер которым я мог бы легко управлять не отвлекаясь от дороги.
Надеюсь мой ответ вас удовлетворил!
2
 Аватар для kerbyteflon
78 / 79 / 21
Регистрация: 10.04.2010
Сообщений: 262
30.03.2011, 10:16
Вот код работы с плейлистом, если приложить руки можно переделать что бы работало при закрытии и открытии формы

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
using System.Runtime.Serialization.Formatters.Soap;
using System.Windows.Forms;
 
 [Serializable]
        class FilePLS
        {
            string name, path;
            public FilePLS(string Name, string Path)
            { name = Name; path = Path; }
            public string Name
            { get { return name; } }
            public string Path
            { get { return path; } }
        }
 
     
        OpenFileDialog open = new OpenFileDialog();
        SaveFileDialog save = new SaveFileDialog();
        FilePLS[] PlayFile;
 
        public void Refr()
        {
            listBox1.Items.Clear();
            for (int i = 0; i < PlayFile.Length; i++)
                listBox1.Items.Add(PlayFile[i].Name);
        }
        // Добавить музыку
        private void button3_Click(object sender, EventArgs e)
        {
            open.Multiselect = true;
            open.Filter = "Музыка (*.mp3)|*.mp3";
            if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string[] f = open.FileNames;
                PlayFile = new FilePLS[f.Length];
                for (int i = 0; i < PlayFile.Length; i++)
                {
                    FileInfo file = new FileInfo(f[i]);
                    PlayFile[i] = new FilePLS(file.Name, file.FullName);
                }
                Refr();
            }
        }
        //Открыть плейлист
        private void button4_Click(object sender, EventArgs e)
        {
            open.Filter = "Плейлист (*.xml)|*.xml";
            if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                FileStream file = new FileStream(open.FileName, FileMode.Open);
                SoapFormatter f = new SoapFormatter();
                PlayFile = (FilePLS[])f.Deserialize(file);
                Refr();
            }
        }
        //Сохранить плейлист
        private void button5_Click(object sender, EventArgs e)
        {
            save.Filter = "Плейлист (*.xml)|*.xml";
            if (save.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                FileStream file = new FileStream(save.FileName, FileMode.Create);
                SoapFormatter f = new SoapFormatter();
                f.Serialize(file, PlayFile);
                file.Close();
            }
        }
1
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22
30.03.2011, 12:05  [ТС]
Спасибо! Сейчас буду ковырять.
0
 Аватар для kerbyteflon
78 / 79 / 21
Регистрация: 10.04.2010
Сообщений: 262
30.03.2011, 19:56
Вот на одном сайте нашел исходники плеера может пригодится!
Вложения
Тип файла: rar Backup.rar (885.1 Кб, 439 просмотров)
0
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22
01.04.2011, 09:25  [ТС]
Цитата Сообщение от kerbyteflon Посмотреть сообщение
Что именно не получается!!!
Не получается чтоб после окончания проигрывания трека трека плеер автоматом переходил на проигрывание следующего трека.
0
2 / 2 / 0
Регистрация: 15.02.2011
Сообщений: 22
02.04.2011, 10:41  [ТС]
В том примере что приведен выше все опенрации делаются через меню. Что на прямую противоречит тому что нужно мне так как меню файл под тачскрин очень неудобная штука. Насколько я понимаю необходимо прописать что-то следующее:
1.Если таймер три видит что плеер находится в режиме стоп в течении какого-то времени. То идет перемещение на один трек больше.
2. Если в плейбоксе прозошла смена трека то плеер перехолит в режим плей.
А вот как это прописать я в ступоре.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
17.06.2014, 11:21
при сохранении плэйлиста вылетает исключение (на скриншоте). Как исправить?
Миниатюры
Управление плеером WindowsMediaPlayer  
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
17.06.2014, 13:05
Положить данные в сериализуемый тип...
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
17.06.2014, 14:19
а как это сделать? подскажите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2014, 14:19
Помогаю со студенческими работами здесь

Управление видео плеером из Делфи
Доброго времени суток. У меня такой вопрос: На сколько реально, управлять сторонней программой из под Делфи. Т.е. мне нужно запустить...

Управление flash плеером через javascript?
Приветствую! К сожалению хоть и большинство современных броузеров поддерживают HTML5 , с воспроизведением разных форматов аудио у них не...

Управление плеером с пульта при подключении к компу
Здравствуйте, Имею комп под управление Windows 10 и телевизор Philips 40PFL7605H/60. Телевизор подключен по HDMI к компу. Экраны...

Реализовать управление плеером на MPD (linux, stm32, arduino)
Для управления медиа проигрывателем демоном MPD из темы на линукс https://musicpd.org/doc/html/user.html Нужно реализлвать...

Нужно реализовать управление flash плеером с другой страницы сайта
Более подробно: Пользователь открывает на сайте страницу c выбранным мультиком, определенного сезона и серии и удобно располагается...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru