Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82

Как воспроизвести звуковой файл

10.03.2025, 08:57. Показов 13759. Ответов 151
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане! Мне очень нравится следующая страница форума Воспроизведение звука
Хотелось бы реализовать коды, представленные на данной странице, но несколько дней пытаюсь и ничего не получается, вы не могли бы помочь в этом вопросе. Условие задачи, необходимо воспроизвести звуковой файл короткого содержания при нажатии кнопки button1, button2-временно остановить (пауза) и button3 просто остановить. Звуковые файлы (они представлены в формате и mp3 и wav подготовлены и хранятся в папке проекта в папке Files). Длина звучания звукового файла предполагается звучать 2, 3 секунды, но можно и больше. Открывать файл не обязательно, предполагается только в коде указать путь к нему…Помогите, кто может...Хотелось бы правильный рабочий код...
Вложения
Тип файла: rar zwuk.rar (1.04 Мб, 46 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2025, 08:57
Ответы с готовыми решениями:

Воспроизвести звуковой файл при щелчке по кнопке
Не подскажите как можно сделать так, чтобы если нажал на кнопку button воспроизводил звуковой файл?

Как мне воспроизвести звуковой сигнал при получении сообщений через SignalR?
Пишу чат на .NET Core и SignalR Core. Мне нужно воспроизводить звуковые сигналы действий (отправка сообщений, получение сообщений). Как я...

Как воспроизвести файл *.xm
Гуглил так не чего толково и не нашел (( Добавлено через 3 часа 25 минут Можно помощи не ждать я так понел :(

151
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
24.03.2025, 16:32
Студворк — интернет-сервис помощи студентам
roach1967, в NAudio есть перечислитель аудио-потоков, там можно изменять уровень у каждого отдельного потока.
В библе CoreAudio тоже есть такая фича.

Добавлено через 23 минуты
Доработка последнего варианта:
Вставлять в имя файла текст сообщения не очень практично. Можно вычислять CRC этого текста + параметры генерации:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void PlayString(string val)
{
    var crc32 = new Crc32();
    //Вычисляем CRC файла из текста + параметров (скорость, частота, амплитуда)
    crc32.Append(Encoding.UTF8.GetBytes(val + WPM.ToString() + Frequency.ToString() + Amplitude.ToString()));
    var checkSum = crc32.GetCurrentHash();
    var file = BitConverter.ToString(checkSum).Replace("-", "").ToLower();
 
    //Если файл уже есть, сразу воспроизводим его и выходим
    if (File.Exists($"{file}.wav"))
    {
        WMPlayer.URL = $"{file}.wav";
        return;
    }
 
// .............
Теперь имена файлов будут такие:
Code
1
2
3
4
138fe22e.wav
d502593d.wav
e4221843.wav
...
Добавлено через 28 минут
Upd2:
Изменять состояния плеера (играть/пауза/возобновить) в зависимости от текущего текста в кнопке хоть и можно, но это не "профессионально":
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
if (button1.Text == "START")
{
    morse.PlayString(progressText1.Txt);
}
else if (button1.Text == "PAUSE")
{
    morse.Pause();
}
else
{
    morse.PlayAgain();
}

Лучше добавить в проект перечислитель состояний плеера и использовать его:
C#
1
2
3
4
internal enum WmpState
{
    Stopped, Playing, Paused
}
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
WmpState wmpState = WmpState.Stopped;
 
private void Button1_Click(object sender, EventArgs e)
{
    switch (wmpState)
    {
        case WmpState.Stopped:
            morse.PlayString(progressText1.Txt);
            wmpState = WmpState.Playing;
            break;
 
        case WmpState.Playing:
            morse.Pause();
            wmpState = WmpState.Paused;
            break;
 
        case WmpState.Paused:
            morse.PlayAgain();
            wmpState = WmpState.Playing;
            break;
    }
}
 
private void Button2_Click(object sender, EventArgs e)
{
    morse.Stop();
    wmpState = WmpState.Stopped;
}
1
 Аватар для roach1967
985 / 465 / 234
Регистрация: 27.06.2014
Сообщений: 1,039
24.03.2025, 19:22
Цитата Сообщение от wizard41 Посмотреть сообщение
но это не "профессионально"
Это чуть позже сообразил, что нужно такие вещи делать через "машину состояний", да всё отвлекался на решения других проблем.
Цитата Сообщение от wizard41 Посмотреть сообщение
Теперь имена файлов будут такие
Специально сделал именование файла строкой воспроизведения, что-бы было понятно содержимое файла и его можно было воспроизвести через виндовый плеер. (Я так и делал через AIMP, когда настраивал мягкость тонов).
А идея с добавлением в имени файла к воспроизводимой строке ещё и параметров звучания понравилась. Тогда действительно можно будет использовать проверку наличия файла (перед генерацией!).
0
3271 / 3355 / 559
Регистрация: 17.02.2019
Сообщений: 5,253
25.03.2025, 08:52
Цитата Сообщение от wizard41 Посмотреть сообщение
просто черный экран с точкой посередине...
Заработал. Попробуйте кеш почистить и Shift + F5 https://www.cyberforum.ru/abou... st17552982
0
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82
27.03.2025, 08:48  [ТС]
Ошибочное сообщение...
Изображения
 
Вложения
Тип файла: rar СИ#.rar (922.6 Кб, 4 просмотров)
0
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82
27.03.2025, 10:25  [ТС]
Доброе утро! Пусть это время пойдёт, стоит и не тикает, помогите его сдвинуть с места!!! И ещё, как сделать так, чтобы размер окна не менял длину и ширину (был зафиксирован)...
Миниатюры
Как воспроизвести звуковой файл  
Вложения
Тип файла: rar СИ#.rar (899.1 Кб, 8 просмотров)
0
3271 / 3355 / 559
Регистрация: 17.02.2019
Сообщений: 5,253
27.03.2025, 10:36
Цитата Сообщение от kukushka3 Посмотреть сообщение
Пусть это время пойдёт
Добавьте таймер, ставьте Interval на 1000. Кликаете по нему. В событии таймера ставите что у вас в label1_Click Запускаете его. Всё.
0
3271 / 3355 / 559
Регистрация: 17.02.2019
Сообщений: 5,253
27.03.2025, 10:48
Лучший ответ Сообщение было отмечено kukushka3 как решение

Решение

kukushka3, посмотрите
Вложения
Тип файла: 7z СИ#.7z (232.5 Кб, 29 просмотров)
0
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82
27.03.2025, 11:04  [ТС]
Да, да это супер, большое спасибо Вам! Сейчас проанализирую, как насчёт фиксации размера окна...
0
3271 / 3355 / 559
Регистрация: 17.02.2019
Сообщений: 5,253
27.03.2025, 11:32
kukushka3, чуть позже, занят.
0
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82
27.03.2025, 11:42  [ТС]
Сейчас разобрался...
Изображения
 
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
27.03.2025, 12:10
Цитата Сообщение от kukushka3 Посмотреть сообщение
Сейчас разобрался..
Не разобрался.
Для блокировки изменения размеров окна в свойствах этого окна выставить:
FormBorderStyle: FixedSingle
MaximizeBox: False
2
3 / 3 / 0
Регистрация: 25.01.2021
Сообщений: 82
09.04.2025, 15:35  [ТС]
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2025, 15:35

Как воспроизвести mp3 файл
Как воспроизвести mp3 или другой звуковой файл?

Как воспроизвести mp3 файл?
Всем привет! Как воспроизвести mp3 файл?

Как воспроизвести MP3 файл по ссылке?
Здравствуйте! Имеется ссылка на mp3 файл "http://sait.ru/file.mp3". Нужно сделать, что бы по нажатию на кнопку этот файл...

Как воспроизвести mp3 файл из ресурсов?
У меня в ресурсах проекта есть mp3 и я его хочу воспроизвести. Как же мне это сделать? И чтобы можно было переносить exe-шник из места в...

Как воспроизвести mp3 файл с winmm.dll
Уважаемые посетители уважаемого мною ресурса cyberforum.ru не затруднит ли Вас моя просьба оказать мне помощь? Мне необходимо с помощью...


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

Или воспользуйтесь поиском по форуму:
152
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru