Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
bobrik007
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 19
1

Builder c++ музыка

20.07.2016, 13:45. Просмотров 1011. Ответов 3

Помогите пожалуйста, я с помощью медиа плейера прикрепила музыку к программе и мне надо чтобы она постоянно играла, т.е. повторялась на протяжении всей работы программы. Я просмотрела в интернете, на форуме, но ни один из тех методов, которые нашла не работает у меня и что делать не знаю(
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2016, 13:45
Ответы с готовыми решениями:

Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010?
Народ! Такая проблема... Есть набор компонентов т.н. Dicom VCL. Сайт производителя -...

Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8
День добрый! Есть старый проект С++. Он компилируется на CodeGear™ C++Builder Version 11. Но на...

Как открыть проект C++Builder 6 в Embarcadero C++Builder 10.3 Community Edition?
Здравствуйте. Как открыть проект C++Builder 6 в новом Embarcadero C++Builder 10.3 Community Edition?

Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый
Много раз замечал непонятки с компилятором. Масла в огонь подлил Какой посоветуете?

3
gunslinger
случайный прохожий
1483 / 965 / 371
Регистрация: 20.07.2013
Сообщений: 2,816
20.07.2016, 18:41 2
Лучший ответ Сообщение было отмечено bobrik007 как решение

Решение

Запуск проигрывания музыки при старте программы, точнее, при показе формы (OnShow); можно использовать событие OnCreate (FirmCreate); sound.mid - имя файла, лежит рядом с ехе:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::FormShow(TObject *Sender)
{
  if (FileExists("sound.mid"))
  {
    MediaPlayer->FileName = "sound.mid";
    MediaPlayer->Open();
    MediaPlayer->Play();
  }
}
Постоянный повтор воспроизведения - помести на форму таймер и в коде его срабатывания напиши:
C++
1
2
3
4
5
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  if (MediaPlayer->Mode == mpStopped)
    MediaPlayer->Play();
}
Таймер должен быть активен, то есть его свойство Enabled нужно выставить в true или 1 (это значение по умолчанию).
1
bobrik007
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 19
20.07.2016, 21:38  [ТС] 3
Файл открывается, но воспроизводится все равно только 1 раз( сделала всё так, как вы написали(
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29008 / 19147 / 7520
Регистрация: 22.10.2011
Сообщений: 33,364
Записей в блоге: 6
20.07.2016, 23:13 4
Лучший ответ Сообщение было отмечено nick42 как решение

Решение

Цитата Сообщение от gunslinger Посмотреть сообщение
Постоянный повтор воспроизведения - помести на форму таймер
Это еще зачем? Безо всякого таймера все прекрасно зацикливается:
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::FormShow(TObject *Sender)
{
  if (FileExists("sound.mid"))
  {
    MediaPlayer->FileName = "sound.mid";
    MediaPlayer1->Open();
    MediaPlayer1->AutoRewind = true;
    MediaPlayer1->Play();
    MediaPlayer1->Notify = true;
  }
}
, и по OnNotify медиаплеера перезапускаем его:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender)
{
    if (MediaPlayer1->NotifyValue == nvSuccessful)
    {
        MediaPlayer1->Play();
        MediaPlayer1->Notify = True;
    }
}
2
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2016, 23:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как заставить проект Builder 6 загруженный в Builder 2007 отображать новые кнопки
Люди добрые, кто нибудь встречался с такой проблемой: Я установил Builder 2007, загрузил в него...

Как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не установлен этот самый Builder
вопрос абсолютно нубский,но очень волнует...но как заставить проект сделанный на C++ Builder 6.0...

можно ли в С++ Builder 2006 писать программы на С++ Builder 6?
подскажите, пожалуйста... если программка написана на С++ Builder 2006, могу ли я перевести проект...

Ошибка E2316 (переход с Builder 6, на Builder 2010)
В общем проект создавался на Builder 6, теперь я его пытаюсь скомпилировать на Builder 2010....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.