0

我正在尝试更新媒体条目的“播放”字段,但是当代码运行没有任何问题/异常时,条目的值保持不变。

我正在使用的代码如下:

try {
    String ks = client.getSessionService().start(ADMIN_SECRET, "admin",
            KalturaSessionType.ADMIN, PARTNER_ID, 86400, "disableentitlement");
    client.setKs(ks);
    client.setSessionId(ks);

    // Get Media Entry
    KalturaMediaEntry getMediaEntry = client.getMediaService().get(entry_id);
    // Get plays of Media Entry
    int plays = getMediaEntry.plays;

    int updatedPlays = plays + 1;

    // Create updated Media Entry with plays+1
    KalturaMediaEntry updatedMediaEntry = new KalturaMediaEntry();
    updatedMediaEntry.plays = updatedPlays;

    // Update
    client.getMediaService().update(entry_id, updatedMediaEntry);

 } catch (KalturaApiException e) {
    e.printStackTrace();
    Log.i(TAG, "Update Num of plays error: " + e.getMessage() );
}

任何人都可以帮助我吗?提前致谢。

4

1 回答 1

1

KalturaMediaEntry.plays不可使用 API 更新,这是一个只读字段。见https://github.com/kaltura/server/blob/Kajam-11.18.0/api_v3/lib/types/entry/KalturaPlayableEntry.php#L12

尝试更新此字段时,API 实际上应该引发错误。

我假设您使用的是自托管版本的 Kaltura,在这种情况下,可以使用直接 DB 脚本更新播放。

您可以使用https://github.com/kaltura/server/blob/Kajam-11.18.0/alpha/scripts/utils/updateEntryInSphinx.php作为示例。位于/opt/kaltura/app/alpha/scripts/utils/updateEntryInSphinx.php

$sphinx->saveToSphinx($entry, false, true);添加前

$entry->setPlays($entry->getPlays() + 1);
$entry->save();

执行php /opt/kaltura/app/alpha/scripts/utils/updateEntryInSphinx.php ENTRY_ID execute

于 2016-06-22T10:08:10.080 回答