mediaplayer как поставитьна паузу в нужную секунду

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 14:29

ОБъясняю путанно, извините дурака.

лет N писал (корябал) программку в которой для проигрывания видеоролика на форму клал вроде бы windowsmediaplayer,
программа работала.

сейчас захожу в нее при загрузке выдает ошибку msdxm.ocx не может быть загружен ...
так и не поняв почему не робит( файл такой в винде нашелся), решил заново добавить проигрыватель на форму
но вот команды у него видимо стали другими ...

задача которую хочу получить: остановить проигрывание ролика перед окончанием, чтобы он не перематывался на начало
длину ролика нашел как узнать: a=mp1.currentMedia.duration
но как узнать текущую позицию ? тогда бы мог по таймеру отловить окончание ролика и поставить на паузу mp1.controls.pause

Вообще такое ощущение что я все делаю через ... одно место.

спасибо.

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 15:04

вот кажется нашел :
b=mp1.controls.currentPosition

теперь могу сравнивать.
Спасибо сайту. что помог собраться с мыслями. ответ висел перед глазами в одной из многочисленных вкладок с поиском. не написал бы плюнул и закрыл бы все вкладки... а так ждал ответа и закрывал по одной... 8)

но если у кого-то есть мысли по поводу "через то место" выслушаю.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.08.2013 (Чт) 16:09

Вообще, ничего подобного сам не использовал.
Работать скорее всего перестало из-за изменении версии контрола.
Весьма вероятно, что есть свойство, отключающее зацикливание. Ещё, скорее всего есть соответствующие события. Сравнивать что-то с текущей позицией скорее всего не надо.

PS: Universal Viewer (он написан на Делфи) может использовать WPM 6.4 и WMP 9.0 для проигрывания (помимо двух других способов). Вспомнил я это из-за того, что там есть опция зацикливания, а вот зачем пишу тут - сам не знаю... Кстати, проблема с версиями WMP когда-то обсуждалось на форуме Unreal Commander'а. В общем, забей на этот PS и поищи свойство или события.

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 16:57

там не столько зацикливание сколько возврат(перемотка) на начало

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.08.2013 (Чт) 17:02

tunduk писал(а):там не столько зацикливание сколько возврат(перемотка) на начало

Я про это и говорил. Когда файл заканчиватся, он воспроизводится снова с начала, верно?

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 17:32

нет просто встает на начало но не проигрывается

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.08.2013 (Чт) 17:36

tunduk писал(а):нет просто встает на начало но не проигрывается

А почему тебя такое поведение не устраивает?

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 17:46

мне нужно чтобы оставалось на экране то что в конце ролика, положение объекта там показано

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.08.2013 (Чт) 17:49

Отловить событие завершения показа и перемотать?

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 22.08.2013 (Чт) 18:04

это тогда мне еще придется два события икать :
1) окончание
2) как переходить к концу
при этом наверняка проморгнет начало... лучше уж как есть сейчас

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.08.2013 (Чт) 18:07

tunduk писал(а):2) как переходить к концу

Это не событие, а метод.

tunduk писал(а):при этом наверняка проморгнет начало...

Не факт.

tunduk писал(а):лучше уж как есть сейчас

Возможно вообще есть нужное свойство...

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение bon818 » 22.08.2013 (Чт) 22:36

x.controls.currentPosition сравни с x.currentMedia.duration если осталась, например 1секунда пошли паузу x.Controls.pause . всё

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.08.2013 (Пт) 0:38

bon818 писал(а):x.controls.currentPosition сравни с x.currentMedia.duration если осталась, например 1секунда пошли паузу x.Controls.pause . всё

Он это уже сделал. Должно быть нормальное решение.

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение bon818 » 23.08.2013 (Пт) 1:36

Куда нормальнее то.
По окончанию проигрывания проигрывателю необходимо закрыть файл освободить ресурсы и перейти в дефолтное состояние что он и делает.
И если разработчики контрола не придурки они не поставят метод, который будет держать последний кадр. (меня это-бы взбесило) :evil:
А если весь смысл последнего кадра чтоб окно не выгледело пустым, то правильнее сделать скрин кадра и открыть его прямо в проигрывателе.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.08.2013 (Пт) 8:39

bon818 писал(а):Куда нормальнее то.

Сюда нормальнее - всего одно свойство, как я и думал:
http://www.cgplusplus.com/online-reference/maxscript-reference/source/windows_media_player_activex_control.htm писал(а):.AutoRewind : Boolean
Enable/Disable Auto Rewind. When true, the movie will automatically jump back to the first frame when playback is finished. When false, the movie will remain on the last frame.
А вот и msdn.

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 24.08.2013 (Сб) 18:14

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

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

запуск видео
запуск таймера с интервалом 1
таймер должен каждую милисекунду проверять не близок ли конец, а он баран срабатывает с первого раза походу, почему-то считая, что 0>0,8 (это у меня такой ролик короткий), причем внутри таймера не присваивается переменной значение от плэйера в частности длительность
БРРРРРР

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

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение bon818 » 24.08.2013 (Сб) 23:59

Та сылка msdn на AutoRewind для .NET
Для VB6 тебе надо поставить сылку на nscompat.tlb и AutoRewind появится.
Property AutoRewind As Boolean
Member of NSPlay.NSPlay
Returns or sets whether or not a file is rewound at the end of playback
Да я погоричился про придурков , дествительно может понадобиться и такой метод например для окна видео редактора ресурсы выпускать не надо.

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 25.08.2013 (Вс) 6:51

Для VB6 тебе надо поставить сылку на nscompat.tlb и AutoRewind появится.

А как это делается и не будет ли требовать чего-то от юзверя ?

tunduk
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 17.08.2013 (Сб) 19:47

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение tunduk » 25.08.2013 (Вс) 9:16

пробую картинку ставить ... она показывается 5 секунд и тоже исчезает = черный экран. Лечится паузой.
вопросик. такое время будет у всех ? или как-то зависит от местных настроек.

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: mediaplayer как поставитьна паузу в нужную секунду

Сообщение bon818 » 27.08.2013 (Вт) 4:51

tunduk писал(а):пробую картинку ставить ... она показывается 5 секунд и тоже исчезает = черный экран. Лечится паузой.
вопросик. такое время будет у всех ? или как-то зависит от местных настроек.


Я попробовал WindowsMediaPlayer1.URL = "C:\1.jpg" некуда не исчезает.
Насчет всего другова :
Например, http://www.Planet-Source-Code.com/vb/sc ... 1&lngWId=1


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 38

    TopList