Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
39 / 40 / 10
Регистрация: 07.01.2010
Сообщений: 148

Воспроизвести mp3

25.11.2011, 22:07. Показов 3447. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такая:
Есть два mp3 файла которые нужжно воспроизвести по очереди!!! При желании несколько раз!

Делаю в кнопке
1 воспроизведение одного
2 запуск таймера

Переходим в событие Тик
1 воспроизводим второй файл

Вроде бы все просто но если воспроизводить файлы вотрым способом !кучу раз! оба файла воспроизводит норально!

Если первый способ то воторой файл воспроизводиться с эхом и с каждым нажатием оно усиливается!

Способ 1
Код :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
 using Microsoft.DirectX.AudioVideoPlayback;
 
Audio audio;
 
private void button1_Click(object sender, EventArgs e)
        {
             
              audio = new Audio(@"C:\Program Files\HomeProject\Azbuka\Sound\Фразы\Покажи_букву.mp3", true);
             
              timer1.Interval = 1000;
              timer1.Tick += new EventHandler(timer1_Tick);
              timer1.Start();
        }
 
 private void timer1_Tick(object sender, EventArgs e)
        {
        
             audio = new Audio(@"C:\Program Files\HomeProject\Azbuka\Sound\Фразы\А.mp3", true);
             timer1.Enabled = false;
            
        }

Способ 2
Так же делал вот так ну это от без исхоности За то робит)))))

C#
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, EventArgs e)
 {
                audio = new Audio(@"C:\Program Files\HomeProject\Azbuka\Sound\Фразы\Покажи_букву.mp3", true);
 
         for (int i = 0; i < 500000000; i++)
            {
                i = i + 2;
            }
 
               audio = new Audio(@"C:\Program Files\HomeProject\Azbuka\Sound\Фразы\А.mp3", true);
              
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2011, 22:07
Ответы с готовыми решениями:

Как воспроизвести ogg
Для моей игры необходима музыка в ogg формате, так как wav просто невероятный размер хавает! Нужен желательно не огромный код для...

Воспроизвести звук .net core
Всем привет, стоит задача прикрутить звук к уведомлениям на .net core UI делаю с помощью Avalonia. Нужно, чтобы звук был на MacOS ,...

Как воспроизвести звук из сис. динамика?
Как воспроизвести звук из сис. динамика(того что &quot;PC Speaker&quot;)? Это все нужно проделать на Windows 7. Console.Beep() не предлагайте, он...

4
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
26.11.2011, 02:00
Цитата Сообщение от bellliy Посмотреть сообщение
Если первый способ то воторой файл воспроизводиться с эхом и с каждым нажатием оно усиливается!
Потому-что каждое нажатие на кнопку, таймер подписывается на новый обработчик, то есть timer1.Tick ссылается на столько обработчиков, сколько раз была нажата кнопка. После того как подпишется, он воспроизводится выполняя код в обработчике. Первое нажатие на кнопке запускается один раз timer1_Tick, второе нажатие уже 2 раза, и каждое последующее прибавляет ещё один раз. Вот и эхо.
Вот это перенеси в конструктор окна:
C#
1
2
timer1.Interval = 1000;
timer1.Tick += new EventHandler(timer1_Tick);
И насчёт этого:
Цитата Сообщение от bellliy Посмотреть сообщение
C#
1
2
3
4
for (int i = 0; i < 500000000; i++)
 {
 i = i + 2;
 }
Ну уж хотя бы можно было использовать Thread.Sleep(1000). А так конечно таймер куда более нормальный вариант.
1
39 / 40 / 10
Регистрация: 07.01.2010
Сообщений: 148
26.11.2011, 02:50  [ТС]
Спасибо за ответ большое=)

Но пока ждал решение решил проблемму так:

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
 using System;
    using System.Timers;
    using System.Windows.Forms;
    using System.Threading;
 
 
namespace MyTimer
{
    class Delay
    {
 
        bool Mytimer_Polon = false;
        System.Timers.Timer Mytimer;
 
        public Delay()
        {
            Mytimer = new System.Timers.Timer();
            Mytimer.AutoReset = false;
            Mytimer.Elapsed += delegate// Событие
            {
                Mytimer_Polon = true;
            };
        }
 
        public void Delay_ms(int Delay_ms)// Функция для использования
        {
            Mytimer.Interval = Delay_ms;
            Mytimer.Enabled = true;
            while (Mytimer_Polon == false)// пока не наполниться
            {
                Application.DoEvents(); Thread.Sleep(9);// Тормозим поток но сохроняем жизнь формы
            } // Ожидает
            Mytimer.Enabled = false;
            Mytimer_Polon = false;
        }
    }
}
Очень удобно пользоваться! Если нужна в программе задержка!
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
26.11.2011, 03:02
Не-е-е, помоему это не решение. Это вообще какой-то изврат. То есть там где можно сделать нормально, сделано просто через одно место (ИМХО).

Ещё совет:
Называй поля с маленькой буквы в твоём случае (не используй ты эти прочерки между слов (хотя дело твоё)):
C#
1
bool myTimerPolon = false;
Добавлено через 3 минуты
Советую почитать "Соглашения по оформлению кода команды RSDN", тут всё описано действительно по уму. Только можно не согласиться с названием полей с прочерка (bool _myTimerPolon), но и то в принципе тоже вариант.
1
39 / 40 / 10
Регистрация: 07.01.2010
Сообщений: 148
28.11.2011, 16:33  [ТС]
Почитаем=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2011, 16:33
Помогаю со студенческими работами здесь

Bass.Net.dll: как воспроизвести файл
Ребят. Уже надоело гуглить и лазить по форуму. Подскажите как правильно воспроизвести файл пользуясь библиотекой Bass.Net.dll. Пользуясь...

Как воспроизвести аудио файлы размером 1 килобайт?
У меня есть .wav аудио файлы очень малого размера - 1Кб, как массивы байтов, и я пробую воспроизвести их с помощью NAudio, но у меня не...

Как одновременно воспроизвести аудио-потоки от разных участников чата?
Пишу аудио-чат конференцию. Передаю аудио-поток с микрофона клиента на сервер, с сервера отправляю его всем участникам конференции по...

Как воспроизвести видео на форме
Нужно что бы по нажатию кнопки просто запускалось видео без всяких красивостей.

Изменить цвет и потом воспроизвести звук
Здравствуйте. C# приложение WPF Всё работает но немного не так. При нажатии на кнопку сначала воспроизводится звук, а потом меняется...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru