Media SDK 會自動追蹤媒體播放處於以下非作用中狀態之一的時間:
如果媒體追蹤工作階段保持在非作用中狀態超過 30 分鐘,將自動關閉工作階段。如果使用者在先前的非作用中視訊追蹤工作階段之後繼續 (trackPlay
),媒體心率會使用先前使用的視訊資訊和中繼資料自動建立新視訊工作階段,並傳送繼續心率事件。如需詳細資訊,請參閱音訊和視訊參數。
只有在應用程式未關閉時,Media SDK 才會自動繼續工作階段。如果應用程式儲存使用者資料並有能力繼續先前關閉的媒體,您便可以手動觸發繼續事件。開始視訊追蹤工作階段時,請設定選用的 Video Resumed 屬性。
// Set MediaHeartbeat.MediaObjectKey.mediaResumed to true
public void onmediaLoad(Observable observable, Object data) {
// Replace <MEDIA_NAME> with the media name.
// Replace <MEDIA_ID> with a media unique identifier.
// Replace <MEDIA_LENGTH> with the media length.
MediaObject mediaInfo = MediaHeartbeat.createMediaObject(
<MEDIA_NAME>,
<MEDIA_ID>,
<MEDIA_LENGTH>,
MediaHeartbeat.StreamType.VOD
);
// Set to true if this is a resume playback scenario
mediaInfo.setValue(MediaHeartbeat.MediaObjectKey.mediaResumed, true);
_heartbeat.trackSessionStart(mediaInfo, mediaMetadata);
}
- (void)onMainmediaLoaded:(NSNotification *)notification {
//Replace <MEDIA_NAME> with the media name.
//Replace <MEDIA_ID> with a media unique identifier.
//Replace <MEDIA_LENGTH> with the media length.
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:<MEDIA_NAME>
mediaId:<MEDIA_ID>
length:<MEDIA_LENGTH>
streamType:ADBMediaHeartbeatStreamTypeVOD];
//Set to YES if this user is resuming a previously closed media session
[mediaObject setValue:@(YES) forKey:ADBMediaObjectKeymediaResumed];
[_mediaHeartbeat trackSessionStart:mediaObject data:mediaMetadata];
}
_onmediaLoad = function () {
// Replace <MEDIA_NAME> with the media name.
// Replace <MEDIA_ID> with a media unique identifier.
// Replace <MEDIA_LENGTH> with the media length.
var mediaObject =
MediaHeartbeat.createMediaObject(<MEDIA_NAME>,
<MEDIA_ID,
<MEDIA_LENGTH>,
MediaHeartbeat.StreamType.VOD);
// Set to true if this user is resuming a previously closed media session
mediaObject.setValue(MediaObjectKey.mediaResumed, true);
this._mediaHeartbeat.trackSessionStart(mediaObject, contextData);
};