Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> событие MediaPlayerNotify 
:(
    Опции темы
Kyuuketsuki
Дата 18.1.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.1.2009

Репутация: нет
Всего: нет



Доброго времени суток!
Объясните, пожалуйста, доступным языком, когда программа обрабатывает это событие?
В моей программе фоном идет музыка. В процедуре MediaPlayerNotify идет проверка на окончание трека, чтобы запустить его заново, либо включить новый. Музыку можно отключить в настройках. Но если при запуске программы музыка выключена, то потом (при включении) она проигрывается только раз, то есть в эту процедуру не заходит.
PM MAIL   Вверх
Kyuuketsuki
Дата 25.1.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.1.2009

Репутация: нет
Всего: нет



наверное, я так никогда и не пойму, в чем была сложность моего вопроса... (
PM MAIL   Вверх
Ийон
Дата 26.1.2009, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Сложность твоего вопроса в том, что трудно смоделировать в уме именно твою ситуацию и дать ответ, что ты делаешь не так.
Другое дело, если бы ты привел весь код, где используешь TMediaPlayer, особенно процедуру MediaPlayerNotify.

(Предположение.) MediaPlayerNotify однозначно запускается каждый раз, когда трек заканчивается. Из чего следует, что твоя проверка в этой процедуре не дает запустить новый (перезапустить текущий) трек в том случае, когда музыка включается после запуска программы.
PM MAIL   Вверх
Kyuuketsuki
Дата 27.1.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.1.2009

Репутация: нет
Всего: нет



Код

procedure TForm1.MusicNotify(Sender: TObject);
var FileName : string;
begin
  Randomize;
  if Options.MusicEnabled and Music.Mode = mpStopped then
    begin
        case Form1.Tag of
          0,1,8: FileName := '\music\intro';
          7: FileName := '\music\about';
          else FileName := '\music\background'+IntToStr(Random(6)+1);
        end;
        PlaySound(FileName,music); // вызов процедуры проигрывания файла
        Music.Notify := true;
    end;
end;

PM MAIL   Вверх
Ийон
Дата 28.1.2009, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Если ты ставишь Music.Notify := true, значит ты где-то ставишь и  false. 
Это свойство как раз определяет, будет ли запускаться MusicNotify или нет.
PM MAIL   Вверх
Ийон
Дата 28.1.2009, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Если ты ставишь Music.Notify := true, значит ты где-то ставишь и  false. 
Это свойство как раз определяет, будет ли запускаться MusicNotify или нет.
PM MAIL   Вверх
Ийон
Дата 28.1.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Ты ставишь Music.Notify := true, что абсолютно бессмысленно, потому что MusicNotify не получает управление, если Music.Notify := false. (Если конечно ты сам не вызываешь процедуру.)
Проверь, ставишь ли ты где-нибудь Music.Notify := false и убери.
 
PM MAIL   Вверх
Kyuuketsuki
Дата 28.1.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.1.2009

Репутация: нет
Всего: нет



при удалении строчки Music.Notify := true ничего не меняется.
а в других местах изменение Notify нет, все проверенно на еще один раз (
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.