質問

購読しようとしています onTimeIndexChanged Mediaplayerイベント。私がStaysに焦点を合わせてサブスクライブしているという見解である限り、それは正常に動作します。バックボタン、またはウィジェットボタンを押すと、ビューがぼやけてイベントを受信しなくなります。

このサブスクリプションは、スイッチングビューを通して持続する可能性がありますか?ウィジェット全体のサブスクリプションはありますか?

再生クライアント側の時間を数えることが可能かどうかを調べようとしています。

役に立ちましたか?

解決

これはYahoo!でも答えられました接続されたテレビフォーラム: http://developer.yahoo.net/forum/?showtopic=7383 はい、あなたは正しい軌道に乗っています。メディアプレーヤーはシングルトンであるため、特定の見方に縛られていません。ウィジェットのグローバル実行コンテキストでそれを購読するリスナーを定義できます。このようにして、ビューがGC'Dであるときに発生するイベントを受け取って処理することができますが、それらのイベントを受け取ることができます。

これらのグローバルサブスクリプションをinit.jsに配置して、それらが中央に位置する(ベストプラクティス)。

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

次に、javascript/core/eventhandlers.jsで:


var EventHandlers = {

    //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; } 壊す;ケースkontx.mediaplayer.constants.states.unknown:case kontx.mediaplayer.constants.states.error:case kontx.mediaplayer.constants.states.stop:ケースkontx.meaplayer.constants.states.eof:kontx.application.removeview( 「スニペットノウプレイ」); this._snippetadded = false;壊す; } 壊す;

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

};

また、ビューのHideviewリスナーでそれらからの登録を解除することが非常に重要であるというビューでイベントを購読している場合は、追加する必要があります。これにより、メモリリークやその他の望ましくない動作を防ぐことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top