Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 369

/ вопрос открыт /

Здравствуйте, эксперты!
Помогите пожалуйста. Я использую компонент ActiveX TWindowsMediaPlayer. При создании форми идет конект к базе на сервере мускул, от туда вытягиваются имена файлов и формируется файл wpl (плейлист). Как мне этот плейлист запихнуть в WindowsMediaPlayer. Тоесть, все это должно происходить при создании формы, и ище, чтоб этот плейлист проигрывался по колу. Зарание спасибо!

mate Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: mate (статус: Посетитель)
Вопрос отправлен: 5 ноября 2009, 15:15
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ты с парсерами не работал, а я - с плеерами. Но всё же попробую. Тебе нужно просто извлечь список файлов, имена которых находятся после "
Я щас взял демо к компоненту TECXMLParser и скормил ему твой файл. 100% работает. Прицепляю парсер к ответу. Демо (XML Browser) посмотри в первую очередь.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 ноября 2009, 16:20
Оценка за ответ: 3


Мини-форум вопроса

Всего сообщений: 71; последнее сообщение — 12 ноября 2009, 11:56; участников в обсуждении: 4.

Страницы: [« Предыдущая] [1] [2] [3] [4] [Следующая »]

mate

mate (статус: Посетитель), 10 ноября 2009, 13:17 [#41]:

вот он мне не помог
mate

mate (статус: Посетитель), 10 ноября 2009, 13:19 [#42]:

а как этот фокус убрать с ListBox?
min@y™

min@y™ (статус: Доктор наук), 10 ноября 2009, 13:20 [#43]:

Цитата (Вадим К):

Тут и отладчик может не помочь. Думаю, что вся проблема в том, что в коде есть установка фокуса для ListBox (например при переходе на другой трек).


Дык для начала с помощью отладчика можно нужно локализовать ошибку - найти строку кода, на которой она вылетает.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
mate

mate (статус: Посетитель), 10 ноября 2009, 13:34 [#44]:

отладчик не помогает, виснет когда приложение запускается....
min@y™

min@y™ (статус: Доктор наук), 10 ноября 2009, 13:36 [#45]:

Цитата (mate):

отладчик не помогает, виснет когда приложение запускается....


Опиши детально свои действия, а то телепатов тут нет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 10 ноября 2009, 13:51 [#46]:

в данном случае можно не получить строчку кода. а получить адрес где то глубоко в внутренностях видны. Даже подымаясь по стеку вызовов никуда толком не придешь.

Плюс тут есть одна большая проблема - Windows media Player, разработчики которого панически бояться отладчиков:) Кто стыкался, знает

Фокус убирать не нужно. Всё проблема в том, что винда в некоторых случаях не очень любит, когда работают с невидимыми компонентами. Например установка фокуса в Memo1, когда оно невидимо под 2000 виндой к ошибке не приводит, а под XP - выкидывает.
Так вот и тут проблема. В нормальных приложениях список файлов хранили бы отдельно в массиве (списке), а ListBox сугубо для отображения. И когда он не виден, то и работать с им не нужно.

Попробуйте исключить работу ListBox в полноэкранном режиме, которая его модифицирует (например установку ItemIndex). Если заработает - будем разбираться, как переписать правильно приложение.
Галочка "подтверждения прочтения" - вселенское зло.
mate

mate (статус: Посетитель), 10 ноября 2009, 13:53 [#47]:

в свойствах медиаплеера устанавливаю Fulscreen=true, при создании формы происходит события ConectClick, это нажатие по кнопке, в следствии чего происходит конект к базе и результат запроса выводит в listbox....при этом же событии начинает проигрыватся первый файл с listbox.... потом отслеживаю MediaPlayerPlayStateChange, если заканчивает играть первый файл, то
if NewState = wmppsMediaEnded then begin
    PostMessage(handle, wm_user, 0, 0);
    if ListBox1.Items.IndexOf(PlayItem) = ListBox1.Items.Count-1 then
    begin
    Replay;
 
    end
    else
    begin
    mediaplayer.URL:=listbox1.Items[listbox1.Items.IndexOf(PlayItem)+1];
    PlayItem:=listbox1.Items[listbox1.Items.IndexOf(PlayItem)+1];
    edit1.Text:=PlayItem;
    end;
    end;
вот и все....
ошыбка вылетает, когда заканчивает играть первый файл
mate

mate (статус: Посетитель), 10 ноября 2009, 14:04 [#48]:

не работает это.....я явно прописываю путь к первому файлу в URL, и также явно к другому, который должен проигрыватся по окончании первого.
mate

mate (статус: Посетитель), 10 ноября 2009, 16:45 [#49]:

немного поковырявшись в коде понял, что ошыбку выдает при команде mediaplayer.fullScreen:=true......я ее закоментировал, теперь работет так: в свойстве mediaplayer стоит true, при запуске приложения, первый файл проигрывается в полноэкранном режиме, при его окончании, полноэкранный режим сворачивается, и второй файл начинает играть в обычном режиме......для этого я и писал команду mediaplayer.fullScreen:=true.....как быть в этой ситуации?
mate

mate (статус: Посетитель), 11 ноября 2009, 14:08 [#50]:

Вадим К: можешь посоветовать в чем здесь засада?
Вадим К

Вадим К (статус: Академик), 11 ноября 2009, 14:25 [#51]:

Надо понять, почему он сворачивается.
Галочка "подтверждения прочтения" - вселенское зло.
mate

mate (статус: Посетитель), 11 ноября 2009, 14:27 [#52]:

может тебе кусок кода своего показать? может ты там увидишь что-от....
mate

mate (статус: Посетитель), 11 ноября 2009, 14:35 [#53]:

ище один момент....я по клику по некой кнопке прописал fukkscreen:=true......так вот, когда первый файл проигрался в полноэкранном режиме, а потом плеер сворачивается и играет второй файл, то при нажатии на ту кнопку, плеер разворачивается.....ну и на следующий файл опьять сворачивается.....когда я прописываю fukkscreen:=true в месте, где отслаживается конец проигрывания файла и начало воспроизведения второго, о выдает ошыбку "Разрушительный сбой"
Вадим К

Вадим К (статус: Академик), 11 ноября 2009, 14:41 [#54]:

ключевая фраза "отслаживается конец". как можно развернуть плеер, если файл уже закончился? надо разворачивать, когда начинается воспроизведение нового файла.
P.S. проверьте грамматику
Галочка "подтверждения прочтения" - вселенское зло.
mate

mate (статус: Посетитель), 11 ноября 2009, 14:54 [#55]:

procedure TForm1.MediaPlayerPlayStateChange(ASender: TObject;
  NewState: Integer);
var i:integer;
begin
 //if NewState = wmppsPlaying then  Fullscreen;
 if NewState = wmppsMediaEnded then begin
    PostMessage(handle, wm_user, 0, 0);
    if ListBox1.Items.IndexOf(PlayItem) = ListBox1.Items.Count-1 then
    begin
    Replay;
 
    end
    else
    begin
   mediaplayer.URL:=listbox1.Items[listbox1.Items.IndexOf(PlayItem)+1];
    PlayItem:=listbox1.Items[listbox1.Items.IndexOf   (PlayItem)+1];
    edit1.Text:=PlayItem;
 
    end;
    end;
end;
 
 
 
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
if Msg.Message = WM_USER  then
  begin
  mediaplayer.controls.play();
  Fullscreen;
  end;
end;
 
procedure TForm1.Fullscreen;
begin
mediaplayer.fullScreen:=true;
end;

когда вот так я делаю - то ошыбка "Разрушительный сбой", а если не вызиваю функцию Fullscreen, то все норм.
Вадим К

Вадим К (статус: Академик), 11 ноября 2009, 15:14 [#56]:

ну логично, получается, что перевод в полноэкранный режим происходит дважды.
P.S. ж ч ш пишем с "и".
Галочка "подтверждения прочтения" - вселенское зло.
mate

mate (статус: Посетитель), 11 ноября 2009, 15:25 [#57]:

сори, я сам со Львова и русский язик знаю только разговорный..... не понял, где первый раз переход. а где второй?
Вадим К

Вадим К (статус: Академик), 11 ноября 2009, 15:32 [#58]:

первый
mediaplayer.controls.play();
эта строка вызывает событие wmppsPlaying
где снова вызывается фуллскрин.

P.S. Я тоже не с Россиии, могу и на украинском говорить, и на русском.
Галочка "подтверждения прочтения" - вселенское зло.
mate

mate (статус: Посетитель), 11 ноября 2009, 15:42 [#59]:

ну хорошо, если без вызова функции Fullscreen, то работает без ошибки.......как я понял, если в свойстве медиаплеера задать fullscreen=true, то при вызове mediaplayer.controls.play()- плеер должен играть в полноэкранном режиме....но почему тогда после окончания проигрывания первого файла он сворачивается?
Вадим К

Вадим К (статус: Академик), 11 ноября 2009, 15:49 [#60]:

Он сворачивается, потому что закончил проигрывание. всего лишь.
Но если был бы список, то скорее всего он бы не сворачивался.
Галочка "подтверждения прочтения" - вселенское зло.

Страницы: [« Предыдущая] [1] [2] [3] [4] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:36
Выполнено за 0.03 сек.