1

私はビデオ アプリケーションに取り組んでおり、ビデオ プレーヤー API (Flowplayer) を使用してユーザーのアクションを追跡したいと考えています。「再生、一時停止、再開など」を処理するために、各イベントにイベントリスナーを設定することでそれを行っています。JavaScriptを使用したイベント。イベントをキャッチした後、アクションをデータベースに書き込む (そしてユーザーからトレース情報を隠す) ために、サーバー側に配置された静的メソッドを呼び出しています。

これは私が今得たものです:

JS コード:

<script type="text/javascript">
// bind listeners to all players on the page
flowplayer(function (api, root) {
    api.bind("pause", function () {
        console.info("pause", api.paused);

        var timePassed = api.video.time;
        @{
            Reporter.ReportPause(timePassed);
        }
        //... more code  ...

</script>

C# コード:

public static void ReportPause ( string timePassed)
{
    // do something with timePassed
}

「シンボル 'timePassed' を解決できません」という例外が発生しました。

どうすれば適切でエレガントな方法で(オーバーヘッドを最小限に抑えて)行うことができますか。

皆さんありがとう、YNWA

4

1 に答える 1

0
<script type="text/javascript">
        // bind listeners to all players on the page
        flowplayer(function (api, root) {
            api.bind("pause", function () {
                console.info("pause", api.paused);

                var timePassed = $.flowplayer().getTime();
                    $.ajax({
        url: '/Home/ReportPause',
        type: 'POST',
        dataType: "json",
        data: { timePassed: timePassed },
        error: function (a, b, c) { onError(a, b, c, parameters); },
        success: function (data) { onSuccess(data, parameters); }
    });
                });
            }
    </script>


// Controller
public class HomeController{
    public JsonResult ReportPause(string timePassed)
    {
         TimePassedClass.ReportPause(timePassed);
         // more code
    }
}
public static class TimePassedClass
{
      public static void ReportPause(string timePassed)
       {
          // your logic
       }
}
于 2013-09-03T10:31:07.657 に答える