ニコニコ動画プレイヤーの status がおかしい

ニコ動でリピート on にして聞きまくってるときに :nicopause が効かないので調べてみたら、リピート後の satus が再生中でも 'end' になってるという現象。


// env: Firefox 3.0.3 + Firebug

var p = document.getElementById('flvplayer');

// result: "200810280130"
p.GetVariable('PLAYER_VERSION');

// result: "end"
p.ext_getStatus();

nicontroller.js 側だと status が 'playing' のときに pause 、 'playing' 以外のときに play させているので動かなかったということだね。で、何とかしようかと思ったんだけどどうにもならなかったんだよね。てか setTimeout 使って自前で再生されてるかチェックする以下のコードでも 'playing' とは判定するんだけど、 ext_play 関数側で status チェックをかけているのか toggle できない。だと toggle できた。 true と false の位置まちがってた。はずかしいいいいいいい。

var p = document.getElementById('flvplayer');

if (p.ext_getStatus() === 'end') {
    var base = p.ext_getPlayheadTime();
    setTimeout(function () {
        if (base !== p.ext_getPlayheadTime()) {
            console.log('playing');
            console.log(p.ext_getPlayheadTime());
            p.ext_play(false);
        }
        else {
            console.log('pause');
            console.log(p.ext_getPlayheadTime());
            p.ext_play(true);
        }
    }, 100);
}

というわけでシークバーを動かせば status がセットし直されるみたいなのでちょっと面倒だけど :nicoseek[! N] -> :nicopause としてくださいな。nicontroller.js を update 。てかニコ動への報告パスってあるのかな ?

ちなみにリピートしてるのは以下の曲。とはいっても通算で 10 時間程度なのでそんなに聞いてるとはいえない。