Просмотр полной версии : onPlayStatus?
DarkLight
26.11.2006, 12:24
Вот такой вопрос. Как заставить работать onPlayStatus у NetStream?
Сделал, как хелп говорил, кастомного клиента. onMetaData работает. onPlayStatus - нет. Причем во Флеше 9 альфе onPlayStatus даже отсутствует в списке событий NetStream. Во флексе то же не работает. Что можно сделать?
Такого события даже в восьмерке не было :)
В восьмерке есть onStatus, в девятке событие NetStatusEvent.NET_STATUS, соответственно подписка:
my_ns.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
DarkLight
26.11.2006, 13:43
onPlayStatus
Dispatched when a NetStream object has completely played a stream. This handler returns information objects that provide information in addition to what's returned by the netStatus event. You can use this handler to trigger actions in your code when a NetStream object has switched from one stream to another stream in a playlist (as indicated by the information object NetStream.Play.Switch) or when a NetStream object has played to the end (as indicated by the information object NetStream.Play.Complete). To respond to this event, you must create a function to process the information object sent by the server.
(http://livedocs.macromedia.com/flex/2/langref/flash/net/NetStream.html#event:onPlayStatus)
А это тогда к чему??
PS Что восьмерке этого нет, я знаю:)
This event is intended primarily for use with a server, such as Flash Media Server; for more information, see the class description. It is not part of the Flash Player API, but is included in this language reference for your convenience. You cannot use the addEventListener() method, or any other EventDispatcher methods, to listen for or process this event. Rather, you must define a single callback function and attach it directly to one of the following objects: …
Дочитать надо :)
DarkLight
26.11.2006, 14:02
Дочитал, но:
onMetaData event
Dispatched when Flash Player receives descriptive information embedded in the FLV file being played.
This special event is primarily intended for use with a server, such as Flash Media Server;...
А работает и без сервера
You cannot use the addEventListener() method, or any other EventDispatcher methods, to listen for or process this event
Я же написал, что подвесил кастомного клиента как хелп пишет
Так и не работает... так и не понятно, как узнать, закончился ли играть видеофайл, или нет :(
Есть какие-либо человеческие варианты решения вопроса? Сравнения duration не предлагать :)
Update:
Тьфу... туплю. Разобрался, извиняюсь.
//stream - объект NetStream, а не NetConnection - некоторые почему-то именно к NetConnection прицепить пытаются %)
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
function netStatusHandler(event:NetStatusEvent) {
trace(event.info.code)
}
Но пусть будет для истории, а то вот многие американские ребята так и не разобрались, как с этим ивентом работать... многие так и сравнвиают duration :)
И какое значение event.info.code будет означать, что flv полностью проигрался?
Я считаю, что отловить окончание flv можно так:
event.info.code == "NetStream.Buffer.Empty" && (stream.bytesTotal == stream.bytesLoaded)
И какое значение event.info.code будет означать, что flv полностью проигрался?
function netStatusHandler(event:NetStatusEvent):void {
switch(event.info.code){
case "NetStream.Play.Stop": //проигрывание файла завершено
//делаем что-то...
break;
}
}
Нужно уточнить.
"NetStream.Play.Stop" не только в конце может всплывать, а например, когда нажимаешь на стоп :) Или, когда ролик подгружаться не успевает.
так как же отловить окончание проигрывания фильма?
NetStream.Play.Stop
не отлавливает окончания проигрывания влего файла, у меня это событие всплывает сразу как запускаю проигрывание фильма
"NetStream.Play.Stop" не только в конце может всплывать, а например, когда нажимаешь на стоп :)
Неправда :) Хотя, смотря что вы называете "стопом". Метод pause() не влияет на выстреливание этого ивента.
Или, когда ролик подгружаться не успевает.
Кстати, возможно. Но вряд ли, потому что для этого был отдельный статус. Сейчас нет возможности проверить.
Мда... Полчаса промучался с этим onPlayStatus... Искал решение на иностранных сайтах, а сюда и забыл заглянуть. Спасибо за решение =) Странно, что эдоб до сих пор не исправил этот глюк.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.