Вверх ↑
Ответов: 204
Рейтинг: 2
#1: 2015-09-29 15:12:14 ЛС | профиль | цитата
Долго думал создавать ли новую тему или писать в предыдущей, но посчитал что вопрос хоть про один и тот же компонент, но уже иного характера и про другую беду поэтому создал новую тему. Надеюсь поступил верно!

И так. В компоненте DirectShowPlayer присутствует лишь одно событие: onEndPlay. Событие происходит после завершения проигрывания файла.
Но у меня ситуация такая, что DirectShowPlayer проигрывает не файл а видеопоток! Соответственно воспроизведение начинается через некоторое время после старта (загрузка, буферизация и т.д.), на время этой задержки работает прелоадер . И вот тут как воздух нужно событие "onPlay" (начало воспроизведения) чтобы знать когда отрубать прелоадер. Но такого события к сожалению нет!

Далее. Иногда бывает что ссылки битые и воспроизведение невозможно. Или в процессе воспроизведения допустим отваливается интернет и продолжение трансляции невозможно. Программа с DirectShowPlayer в таких случаях тупо подвисает! На такой случай очень бы пригодилось событие об ошибке. Но увы, его тоже нет!

У меня собственно два вопроса. Есть ли возможность добавить в компонент эти события и если такой возможности нет, то как и чем можно заменить их?

пример:

Add(MainForm,2953706,126,133)
{
Width=455
Height=470
BorderStyle=4
Point(Handle)
Point(onResize)
Point(Width)
Point(Height)
}
Add(DirectShowPlayer,14928441,308,287)
{
Point(doFullScreen)
Point(doClose)
link(Handle,8571405:Var1,[])
}
Add(DoData,235372,182,287)
{
Data=String(http://93.95.99.231:1935/live/km/playlist.m3u8)
link(onEventData,14739693:doEvent1,[])
}
Add(Hub,14739693,245,287)
{
link(onEvent1,14928441:doPlay,[])
link(onEvent2,14822269:doTimer,[(267,300)(267,313)(235,313)(235,328)])
}
Add(Timer,14822269,245,322)
{
Interval=60
Enable=1
link(onTimer,14928441:doFullScreen,[(287,328)(287,307)])
}
Add(ChildPanel,8571405,315,224)
{
}
BEGIN_SDK
Add(EditMulti,8590332,21,21)
{
VarCount=1
Width=531
Height=347
link(Var1,210257:Handle,[(27,252)(41,252)])
}
Add(Panel,210257,35,105)
{
Left=15
Top=10
Width=410
Height=365
Color=-16777198
Point(Handle)
}
END_SDK
Add(Button,9874813,133,287)
{
Left=140
Top=385
Width=170
Height=45
Caption="киноменю"
link(onClick,235372:doData,[])
}



если не воспроизводится, то нужно обновить кодеки. Можно воткнуть вот эти: https://drive.google.com/file/d/0BxFhf4ILeggUNE5LVkNQUEJGV1k/view?usp=sharing
Кодеки ставятся в фоне. диалогового окна небудет. У меня других нет. Если сомневаетесь, ставте те которым доверяете. в K-Lite Codec Pack Mega точно есть все необходимые фильтры.
------------ Дoбавленo в 15.12:
Неужели некому что либо сказать???
Может у кого есть хоть какие то соображения в каком направлении копать? как отловить начало воспроизведения и избавится от подвисаний в случае ошибки?
карма: 1

0