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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 18:23   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Лампочка Ошибка MediaPlayer'а

Всем доброго времени суток.

Подскажите пожалуйста в чём тут проблема. Вообщем у меня есть несколько форм, на каждой медиаплеер для проигрвывания простеньких щелчков при нажатии на кнопки и т.д. Сначал появляется 1-я - главная форма, с неё можно прейти на любую другую, при этом главную делаю невидимой. Когда перехожу с главной формы на вторую, потом обратно и потом снова на вторую, то при нажатии на кнопку(когда должен быть щелчок) вылазит ошибка : "Данное имя уже используется в приложении в качестве псевдонима, создайте уникальный псевдоним" , и указывается на строчку Play в проце с медиаплеером.

Вот на всякий случай выложу ещё и всю процедуру:

Код:
procedure TfrmBook.SelectSoundPlay;
begin
  if fileexists('Media/Book/Select2.wav') then
  begin
    try
      mpBook.FileName:='Media/Book/Select2.wav';
      with mpBook do
      begin
       mpBook.open;
       Play;
      end;
    except
      Exit;
    end;
  end else
    Exit;
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось Marsel737; 23.11.2009 в 19:22.
Marsel737 вне форума Ответить с цитированием
Старый 23.11.2009, 18:31   #2
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Если скрываете форму с помощью Hide, то попробуйте использовать Free.
Может это отпустит всё что использует данная форма?
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 23.11.2009, 18:55   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Sensizu, неа не прокатило...
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 23.11.2009, 19:03   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Попробуйте перед присваиванием FileName MediaPlayer'у проверять, не содержит ли это свойство вводимое значение, т.е:
Код:
procedure TfrmBook.SelectSoundPlay;
begin
 if (fileexists('Media/Book/Select2.wav')) and (mpBook.FileName <> 'Media/Book/Select2.wav') then
 begin
  try
   mpBook.FileName:='Media/Book/Select2.wav';
   with mpBook do
   begin
    mpBook.open;
    Play;
   end;
  except
   Exit;
  end;
 end else Exit;
end;
Еще можно сначала выгружать из MediaPlayer'а загруженную композицию, а потом уже загружать новую.

Прочитайте правила, и научитесь оформлять код как положено.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 23.11.2009, 19:20   #5
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Нет, это тоже не помогло, а как можно выгружать из плеера?

Всё, проблема решена, добавлением вот этой строчки:

Код:
procedure TfrmBook.SelectSoundPlay;
begin
  if fileexists('Media/Book/Select2.wav') then
  begin
    try
      mpBook.FileName:='Media/Book/Select2.wav';
      with mpBook do
      begin
       Open;
       Play;
       Close;
      end;
    except
      Exit;
    end;
  end else
    Exit;
end;
Правда звук не успевает полностью прозвучатть, как уже выгружается плеер, поэтому лчше на выходе прописать:

Код:
mpBook.Close;
Прошу прошения, я опять забыл про кнопку правка, последний пост удалити если что...
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось Marsel737; 23.11.2009 в 19:39.
Marsel737 вне форума Ответить с цитированием
Старый 23.11.2009, 19:27   #6
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Всё, проблема решена, добавлением вот этой строчки:

Код:
procedure TfrmBook.SelectSoundPlay;
begin
  if fileexists('Media/Book/Select2.wav') then
  begin
    try
      mpBook.FileName:='Media/Book/Select2.wav';
      with mpBook do
      begin
       Open;
       Play;
       Close;
      end;
    except
      Exit;
    end;
  end else
    Exit;
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 23.11.2009, 19:41   #7
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вы выгружаете после проигрывания, и это работает?
Может нужно так:
Код:
procedure TfrmBook.SelectSoundPlay;
begin
  if fileexists('Media/Book/Select2.wav') then
  begin
    try
      with mpBook do
      begin
       if FileName <> '' then Close;
       FileName := 'Media/Book/Select2.wav';
       Open;
       Play;
      end;
    except
      Exit;
    end;
  end else
    Exit;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 23.11.2009, 20:00   #8
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Neeter, работает только файл не успевает полностью проигрываться, лучше как я уже сказал выгружать на выходе и всё.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в статье = ошибка в рограмме. Alex Cones Общие вопросы Delphi 14 29.07.2009 18:17
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI Алексей_xXx Помощь студентам 2 29.05.2009 00:09
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44