Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
29 / 29 / 4
Регистрация: 28.08.2012
Сообщений: 154
1

Один раз загрузить и много раз проиграть звук

24.08.2013, 14:11. Показов 1887. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
sndPlaySound(OpenDialog1->FileName , SND_ASYNC);
Эта функция каждый раз перед проигрыванием звука грузит его из файла. А есть ли функции, чтобы один раз при запуске программы загрузить звук и проигрывать его сколько нужно раз?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2013, 14:11
Ответы с готовыми решениями:

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

Форма поверх окон (ОДИН РАЗ)
Как сделать форму поверх окон единоразово. Чтобы пользователь понял что загрузка завершена,...

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

Сделать, чтобы button работала только один раз
Можно ли как-то сделать, чтобы я нажимал кнопку, действия происходили, и при последующем нажатии на...

6
случайный прохожий
3025 / 2052 / 624
Регистрация: 20.07.2013
Сообщений: 5,523
24.08.2013, 15:52 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::FormShow(TObject *Sender)
{
  if (FileExists("sound.mid"))
  {
     MediaPlayer->FileName = "sound.mid";  // "music.mp3"
     MediaPlayer->Open();
     MediaPlayer->Play();
  }
}
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  if (MediaPlayer->Mode == mpStopped)
    MediaPlayer->Play();
}
0
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,793
24.08.2013, 16:12 3
Теоретически, мне кажется, можно этот медиа-файл пересоздать как виртуальный (в памяти) и потом проигрывать, не обращаясь к диску.
1
29 / 29 / 4
Регистрация: 28.08.2012
Сообщений: 154
24.08.2013, 17:16  [ТС] 4
Цитата Сообщение от nick42 Посмотреть сообщение
Теоретически, мне кажется, можно этот медиа-файл пересоздать как виртуальный (в памяти) и потом проигрывать, не обращаясь к диску.
А как?
0
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,793
24.08.2013, 18:01 5
Деталей уже не помню; примера под рукой тоже нет.
Если файл небольшой и WAV, то из ресурсов попробовать играть. По моему, ресурс из памяти не удаляется, игнорируя признаки MOVABLE DISCARDABLE. Можно поэкспериментировать.
1
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
24.08.2013, 19:39 6
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
#include <mmsystem.h>
...
TMemoryStream *ms = new TMemoryStream;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_LoadClick(TObject *Sender)
{
        ms->LoadFromFile("C:\\1.wav");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_StartClick(TObject *Sender)
{
        PlaySound((char*)ms->Memory, NULL, SND_MEMORY | SND_ASYNC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_StopClick(TObject *Sender)
{
        PlaySound(NULL, NULL, NULL);
}
//---------------------------------------------------------------------------
2
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
24.08.2013, 20:04 7
C++
1
2
#include "mmsystem.h"
mciSendString("play sound\\Sound.wav ", 0, 0,0);
0
24.08.2013, 20:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2013, 20:04
Помогаю со студенческими работами здесь

Вместо циклического выполнения действие происходит всего один раз
Почему он не выполняет циклически, того, чего я хочу. А делает лишь последнее действие. Мемо...

Как написать один раз отлов всех исключений в форме?
Использую C++ Builder. Хочу написать отлов исключений с записью в текстовый файл сообщения об...

Работа с Indy TCP. Данные передаются только один раз
Делаю обмен данными между компами в локальной сети. Использую Indy TCP. Коннект устанавливается....

Можно ли один раз создать функцию в потоке, а потом просто вызывать ее
Не ругайтесь, я искал, не нашел ответа на такой вопрос. Я вот использую потоки следующим образом:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru