powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C# воспроизведение mp3
14 сообщений из 14, страница 1 из 1
C# воспроизведение mp3
    #37741515
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую. Есть такая вот проблема, я хочу сделать маленький mp3 плеер на C#. Для этого использую DirectX.AudioVideoPlayback, у меня на форме листбокс в который можно добавлять mp3 и при нажатии кнопки "Играть" воспроизводится выбранный файл. Все это отлично работает, но возникает проблема при нажатии кнопки "Стоп", когда я её нажимаю, то ничего не происходит. Весь интернет облазил но не нашел такой проблемы не у кого и ответа тоже. Помогите кто может.

Вот мой код

Код: 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.
 private void button1_Click(object sender, System.EventArgs e)
        {
            AddSongs();
        }

        private void AddSongs()
        {
            try
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    ArrayList currPlayList = new ArrayList();
                    for (int i = 0; i < openFileDialog1.FileNames.Length; i++)
                    {
                        currPlayList.Add(new PlayLists(openFileDialog1.SafeFileNames[i], openFileDialog1.FileNames[i]));
                    }
                    PlayList.DataSource = currPlayList;
                    PlayList.DisplayMember = "FileName";
                    PlayList.ValueMember = "FilePath";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        
        private void button2_Click(object sender, System.EventArgs e)
        {
            PlaySongs();
        }

        private void PlaySongs()
        {
            try
            {
                Audio.FromFile(PlayList.SelectedValue.ToString()).Play();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button3_Click(object sender, System.EventArgs e)
        {
            StopSongPlaying();
        }

        private void StopSongPlaying()
        {
            try
            {
                Audio.FromFile(PlayList.SelectedValue.ToString()).Stop();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741558
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

Рискну предположить, что Play() и Stop() нужно вызывать для одного и того же ответа. Если Вы облазили "весь интернет", рискну предположить, что я не первый, что это предлагает. Поскольку вопрос по-прежнему стоит, есть подозрение, что Вы считаете, что Audio.FromFile(PlayList.SelectedValue.ToString()) возвращает один и тот же объект. Это неверно.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741569
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кретин, который сначала отправляет, а потом думает что написалРискну предположить, что Play() и Stop() нужно вызывать для одного и того же объекта . Если Вы облазили "весь интернет", рискну предположить, что я не первый, кто это предлагает. Поскольку вопрос по-прежнему стоит, есть подозрение, что Вы считаете, что Audio.FromFile(PlayList.SelectedValue.ToString()) возвращает один и тот же объект. Это неверно.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741691
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction,

Странно но PlayList.SelectedValue.ToString() возвращает всегда именно путь к выбранному файлу. Если в списке только один файл все равно стоп не работает, если жестко прописать путь файла то стоп опять не работает.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741709
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

Гхм. Вот в такие минуты понимаешь, как фигово оказываться правым.

Как Вы думаете, почему я это написал?
ещё разесть подозрение, что Вы считаете, что Audio.FromFile(PlayList.SelectedValue.ToString()) возвращает один и тот же объект. Это неверно.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741717
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу объяснить. PlayList.SelectedValue.ToString() возвращает путь к файлу, то есть если принять что вы правы то получается, что Audio.FromFile() что-то сам меняет. Я вас правильно понял?
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741724
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 private void PlaySongs()
        {
            try
            {
                Audio.FromFile("D:\\music\\music\\017_Richard Clayderman - The Phantom Of The Opera.mp3").Play();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private void StopSongPlaying()
        {
            try
            {
                Audio.FromFile("D:\\music\\music\\017_Richard Clayderman - The Phantom Of The Opera.mp3").Stop();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }



Так тоже не работает.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741740
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы. Кажется я понял что вы мне хотите сказать. Он создает объект который не связан первым объектом. Ок.

Тогда возникает вопрос как сделать что бы он так не делал?
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741741
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaedrothПрошу объяснить. PlayList.SelectedValue.ToString() возвращает путь к файлу, то есть если принять что вы правы то получается, что Audio.FromFile() что-то сам меняет. Я вас правильно понял?
Audio.FromFile() возвращает объект "композиция". Этому объекту можно дать команды - копать/не копать играть/остановить. Так вот, команду "остановить" нужно дать именно тому объекту, которому раньше дали команду "играть". В Вашем случае же Вы создаёте другой объект, пусть и связанный с тем же файлом, и этому другому объекту - которому команды "играть" никто не давал, - даёте команду "остановить". Ничего не происходит. Странно, правда?
Проведите эксперимент: замените в SongStopPlaying() Stop() на Play() и посмотрите, что получится.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741747
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaedrothТогда возникает вопрос как сделать что бы он так не делал?
Очевидно, дать команду "остановить" тому же самому объекту.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741765
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionОчевидно, дать команду "остановить" тому же самому объекту.

Спасибо Кэп
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741901
ka3yc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaedrothГы. Кажется я понял что вы мне хотите сказать. Он создает объект который не связан первым объектом. Ок.

Тогда возникает вопрос как сделать что бы он так не делал?
Я надеюсь, это был не стёб с вашей стороны, иначе я тоже "кэп" :D

Если в каждый момент времени будет воспроизволиться только один файл, то можете создать переменную в классе формы (того типа, который возращается методом Audio.FromFile) и делайте так:

Код: 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.
private void PlaySongs()
        {
            try
            {
                this.currentTrack = Audio.FromFile(PlayList.SelectedValue.ToString());
                this.currentTrack.Play();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

private void StopSongPlaying()
        {
            try
            {
                this.currentTrack.Stop();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37741953
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ka3yc,

Спасибо. Вы не Кэп, потому что по человечески ответили на вопрос.
...
Рейтинг: 0 / 0
C# воспроизведение mp3
    #37750167
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

автор 1 ответа дал исчерпывающий ответ на ваш вопрос.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C# воспроизведение mp3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]