Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2013, 19:30   #1
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию Глючит MediaPlayer или я что-то не то делаю?

Привет, я делаю программу, которая будет повторять выбранную запись, через интервал, в течении определенного времени. Пользователь может выбрать запись, задать интервал ComboBox'ом, и задать в течении какого времени будет идти повторение(тоже ComboBox'ом).
Все работает вроде, только вот работает через раз, бывает поставлю в течении 5 минут, и все ок работает, а бывает ставлю, оно работает минуты 2, и больше не воспроизводится, хотя время еще не вышло(когда выходит время, то на Panel1 надпись появляется). Переписывал код разными способами, но не помогло. Почему такое может быть?

Код:
// TimerFraza - таймер для интервала
 // TimerVremya - таймер времени, в течении которого идет воспроизведение
 // Button4 - кнопка старта
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Notify := True;
MediaPlayer1.OnNotify := MediaPlayer1Notify;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
with Sender as TMediaPlayer do
   begin
   if(Mode = mpStopped) then
   begin
    case TimerVremya.Enabled of
      True : TimerFraza.Enabled := True;
      end;
     end;
     Notify := True;
   end;
end;

procedure TForm1.TimerFrazaTimer(Sender: TObject);
begin

MediaPlayer1.Stop;
MediaPlayer1.Play;
Panel1.Caption := 'TimerFraza.Enabled := True';
TimerFraza.Enabled := False;

end;


procedure TForm1.ComboBox1Change(Sender: TObject);
var
a : Integer;
begin
a := StrToInt(Form1.ComboBox1.Text);
Form1.TimerFraza.Interval := a*1000;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
var
b : Integer;
begin
b := StrToInt(Form1.ComboBox2.Text);
Form1.TimerVremya.Interval := b*60000;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
TimerVremya.Enabled := True;
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;

procedure TForm1.TimerVremyaTimer(Sender: TObject);
begin
Panel1.Caption := 'Time is over';
TimerVremya.Enabled := False;

end;
TUberwer вне форума Ответить с цитированием
Старый 14.08.2013, 20:28   #2
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

никто не знает?
TUberwer вне форума Ответить с цитированием
Старый 14.08.2013, 20:49   #3
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

или может делать не на mediaplayer? на чем тогда легче всего это сделать?
TUberwer вне форума Ответить с цитированием
Старый 14.08.2013, 22:44   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от TUberwer Посмотреть сообщение
или может делать не на mediaplayer? на чем тогда легче всего это сделать?
Взять и выбрасить TMediaPlayer на помойку! Используй bass.dll или ваще DirectSound и ActiveX.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 14.08.2013, 22:50   #5
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Взять и выбрасить TMediaPlayer на помойку! Используй bass.dll или ваще DirectSound и ActiveX.
Для его задачи использовать dll нерационально. Чтобы просто проиграть звук, можно использовать функции модуля mmsystem. Можно проигрывать по кругу, один раз и.т.д. В общем юзай функцию playsound модуля mmsystem.

ТЫЦ
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так делаю? ratqa Общие вопросы C/C++ 2 13.12.2012 16:54
Что я не правильно делаю? apeorin Общие вопросы C/C++ 4 20.11.2012 19:15
Что не так я делаю? volha_alina Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2012 13:05
Что не так делаю? L6go1as Общие вопросы C/C++ 5 28.10.2011 07:54
Vista глючит или проблемы с железом? Stager Компьютерное железо 8 04.03.2009 22:43