Yahoo!Подключенные события воспроизведения ТВ - PullRequest
2 голосов
/ 19 октября 2010

Я пытаюсь подписаться на onTimeIndexChanged событие медиаплеера. Это работает хорошо, пока вид, что я подписываюсь, остается сосредоточенным. Когда я нажимаю кнопку «Назад» или кнопку «Виджеты», мое изображение становится размытым и больше не принимает события.

Возможно ли, чтобы эта подписка сохранялась при смене видов? Существуют ли подписки для всего виджета?

Я пытаюсь выяснить, можно ли считать время воспроизведения на стороне клиента.

1 Ответ

2 голосов
/ 20 октября 2010

На Yahoo! также ответилиПодключенные телевизионные форумы: http://developer.yahoo.net/forum/?showtopic=7383 Да, вы на правильном пути.Медиаплеер является одноэлементным и не привязан к какому-либо конкретному виду.Вы можете определить слушателя, который подписывается на него в глобальном контексте выполнения виджета.Таким образом, вы все еще можете получать и обрабатывать события, которые происходят, когда представление является gc'd, и вы все равно можете получать эти события.лучшая практика).

<code> 
EventHandlers.handlerPlayerEvent.subscribeTo(KONtx.mediaplayer, ['onStateChange', 'onTimeIndexChanged'], EventHandlers);

Затем в Javascript / core / EventHandlers.js:


var EventHandlers = {</p>

<pre><code>    //snipped for brevity;

    handlerPlayerEvent: function(event) {
            switch(event.type) {
                    case 'onStateChange':
                            switch(event.payload.newState) {
                                    case KONtx.mediaplayer.constants.states.PLAY:
                                            if(!this._snippetAdded) {
                                                    KONtx.application.addViewConfig({ id: 'snippet-nowplaying',

viewClass: VideoNowPlayingSnippetView});this._snippetAdded = true;} перерыв;case KONtx.mediaplayer.constants.states.UNKNOWN: case KONtx.mediaplayer.constants.states.ERROR: case KONtx.mediaplayer.constants.states.STOP: case KONtx.mediaplayer.constants.states.EOF: KONtx.application.remove ('фрагмент-nowplaying');this._snippetAdded = false;перерыв;} break;

                    case 'onTimeIndexChanged':
                            //do something interesting;
                            break;
            }
    }

};

Я должен также добавить, что если вы подписываетесь на события в представлении, очень важно также отписаться от них в слушателе вида HideView.Это может предотвратить утечки памяти и другие нежелательные действия.

...