Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407

Массив из mp3 файлов

04.04.2016, 23:35. Показов 3056. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!
Подскажите как создать массив из 3-х mp3 файлов, чтоб при воспроизведении можно было сослаться на массив.
Или надо создать класс а потом сослаться на класс? Суть - при запуске формы воспроизводились mp3 все по очереди.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2016, 23:35
Ответы с готовыми решениями:

Проигрывание файлов mp3
как проигрывать короткий файл мп3 при открытии формы и при нажатии кнопки?

Воспроизведение нескольких mp3 файлов
Добрый день. Пытаюсь сделать свой mp3 плеер. Имеется list,в котором прописаны пути до файлов. При попытке воспроизвести файлы из...

Сравнение mp3 файлов и нахождение различий
Собственно суть задачи - на вход подается два аудио файла в формате mp3 - это одна и та же запись с радиостанции, только одна является...

12
 Аватар для Romalei
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
05.04.2016, 01:00
ПКМ по панели элементов --> Выбрать элементы --> COM-компоненты --> Там найти Windows Media Player и нажать ОК.
В панель элементов добавится одноименный компонент. Далее добавляем его на форму и работаем с ним.
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 08:21  [ТС]
Цитата Сообщение от Romalei Посмотреть сообщение
ПКМ по панели элементов --> Выбрать элементы --> COM-компоненты --> Там найти Windows Media Player и нажать ОК.
Спасибо! Это я и так знаю ) вопрос не в этом
Цитата Сообщение от _Faradey Посмотреть сообщение
как создать массив
чтоб можно было воспроизводить как по очереди, так и рандомно
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
05.04.2016, 11:09
Лучший ответ Сообщение было отмечено _Faradey как решение

Решение

_Faradey,
можно создать массив с именами воспроизводимых файлов.
Пример с 3-мя файлами, один из которых воспроизводится при загрузке формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
MediaPlayer player;
string[] soundFiles = { @"d:\000\1.mp3", @"d:\000\2.mp3", @"d:\000\3.mp3" };
       
private void Form1_Load(object sender, EventArgs e)
{
    Random rnd = new Random();
    player = new MediaPlayer();
    player.Open(new Uri(soundFiles[rnd.Next(soundFiles.Length)])); 
    player.Play();
            
}
 
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    player.Stop();
    player.Close();
}
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 11:31  [ТС]
MediaPlayer player
не удалось найти тип или пространство имен
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
05.04.2016, 11:43
_Faradey,
Подгрузите ссылки .NET:
PresentationCore
WindowsBase
И используйте пространство имен System.Windows.Media
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 12:15  [ТС]
Еще моментик... а как все это зашить в ехешник?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
05.04.2016, 13:29
Лучший ответ Сообщение было отмечено _Faradey как решение

Решение

_Faradey,
Без распаковки в отдельный файл воспроизвести в MediaPlayer не получится.
Воспроизведение с распаковкой:
Кликните здесь для просмотра всего текста
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
string fileName = "Temp.mp3"; //файл, в который будем распаковывать
MediaPlayer player;
private void Form1_Load(object sender, EventArgs e)
{
    byte[] byteArray;
    Random rnd = new Random();
    player = new MediaPlayer();
    switch (rnd.Next(3)) //в ресурсах 3 файла: 1.mp3, 2.mp3, 3.mp3
    {
        case 0:
            byteArray = Properties.Resources._1; //пишем из 1.mp3 в байтовый массив
            break;
        case 1:
            byteArray = Properties.Resources._2;
            break;
        default:
            byteArray = Properties.Resources._3;
            break;
    }
    FileInfo fileInfo = new FileInfo(fileName); //создаем файл
    FileStream fs = fileInfo.OpenWrite();
    fs.Write(byteArray, 0, byteArray.Length); //пишем в файл из байтового массива
    fs.Close();
    player.Open(new Uri(Application.StartupPath + @"\" + fileName)); //формируем uri и открываем файл
    player.MediaEnded += new EventHandler(player_MediaEnded); //подписываем обработчик к событию окончания воспроизведения
    player.Play();
}
 
void player_MediaEnded(object sender, EventArgs e)
{
    File.Delete(fileName); //после окончания воспроизведения удаляем файл
}
 
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (File.Exists(fileName)) //при выходе до окончания воспроизведения удаляем файл
        File.Delete(fileName);
}
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 14:02  [ТС]
а если я mp3 переведу в wav можно будет в ресурсы затолкать и от туда воспроизводить?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
05.04.2016, 14:37
Цитата Сообщение от _Faradey Посмотреть сообщение
а если я mp3 переведу в wav можно будет в ресурсы затолкать и от туда воспроизводить?
да, через SoundPlayer
C#
1
2
SoundPlayer player = new SoundPlayer(Properties.Resources._1);
player.Play();
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 14:40  [ТС]
А через массив как-то можно? Чтоб та же задача реализовалась через SoundPlayer.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
05.04.2016, 14:58
Лучший ответ Сообщение было отмечено _Faradey как решение

Решение

можно:
C#
1
2
3
4
5
6
7
8
9
SoundPlayer player;
string[] resNames = { "_1", "_2", "_3" }; //в ресурсах 3 файла: 1.wav, 2.wav, 3.wav
private void Form1_Load(object sender, EventArgs e)
{
    Random rnd = new Random();
    Stream stream = (Stream)Properties.Resources.ResourceManager.GetObject(resNames[rnd.Next(resNames.Length)]);
    player = new SoundPlayer(stream);
    player.Play();
}
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
05.04.2016, 16:32  [ТС]
Странно... почему-то вместо воспроизведения записей .wav, которые лежат в ресурсах, он просто брынькает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2016, 16:32
Помогаю со студенческими работами здесь

Winmm.dll. Воспроизведение mp3 файлов по прямой ссылке из интернета
Всем хай. Задача: воспроизводить mp3 файлы по прямой ссылке из интернета. Проблема: почему-то не все ссылки воспроизводятся. Пример...

Конвертировать звуковой файл (.mp3, .wav) в массив байтов
Итак, передо мной встала непростая задача - конвертировать звуковой файл (.mp3, .wav) в массив байтов (т.е. в бинарный файл, строку), а...

Воспроизведение mp3 файлов.
Тут,проблем не возникает : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles...

Чтение mp3 файлов
Мне понадобилась поддержка чтения тегов mp3 файлов на PHP. Данной библиотеки dll для Windows не нашел в интернете, Хочу вместе со...

Воспроизведение mp3 файлов
Есть ли стандартная библиотека для воспроизведение mp3/wav файлов ?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru