Per implementare PTTimeRangeCollection
e contrassegna intervalli di contenuti come annunci:
Prepara il PTTimeRangeCollection
.
Imposta il tipo di PTTimeRangeCollection
a PTTimeRangeCollectionTypeMarkRanges
.
Questo passaggio notifica a TVSDK che gli intervalli personalizzati devono essere trattati come annunci.
#define PSDK_TIMESCALE 100000
NSArray *ranges = @[
[PTReplacementRange
replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(0, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))],
[PTReplacementRange
replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(120, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))]
];
PTTimeRangeCollection *timeRangeCollection =
[[PTTimeRangeCollection alloc] initWithRanges:ranges
type:PTTimeRangeCollectionTypeMarkRanges];
Creare PTAdMetadata
e imposta PTTimeRangeCollection
.
// Create the PTPlayerItem metadata
PTMetadata *metadata = [[PTMetadata alloc] init];
// Create the Ad metadata
PTAuditudeMetadata *adMetadata = [[PTAuditudeMetadata alloc] init];
adMetadata.timeRangeCollection = timerangeCollection;
//Set Ad metadata
[metadata setMetadata:adMetadata forKey:PTAdResolvingMetadataKey];
//Create PTMediaPlayerItem
PTMediaPlayerItem *playerItem = [[[PTMediaPlayerItem alloc] initWithUrl:mediaUrl
mediaId:mediaId
metadata:metadata];
Crea il lettore e avvia la riproduzione.
//Create PTMediaPlayer using the created PTMediaPlayer
PTMediaPlayer *player = [PTMediaPlayer playerWithMediaPlayerItem:playerItem];
//Add player to the player UIView
[self.playerView addSubview:(UIView *)player.view];
//Start playback
[player play];
Per implementare PTTimeRangeCollection
ed elimina intervalli di contenuti come annunci:
Prepara PTTimeRangeCollection
.
Imposta il tipo di PTTimeRangeCollection
a PTTimeRangeCollectionTypeReplaceRanges
.
Questo passaggio notifica a TVSDK che gli intervalli forniti devono essere sostituiti con contenuti alternativi (annunci).
#define PSDK_TIMESCALE 100000
NSArray *ranges = @[
[PTReplacementRange replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(0, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))
replacementDuration:CMTimeMakeWithSeconds(30, AD_TIMESCALE)],
[PTReplacementRange replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(120, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))
replacementDuration:CMTimeMakeWithSeconds(30, AD_TIMESCALE)]
];
PTTimeRangeCollection *timeRangeCollection =
[[PTTimeRangeCollection alloc] initWithRanges:ranges
type:PTTimeRangeCollectionTypeReplaceRanges];
L’argomento replacementDuration
è facoltativo. Se non è definita, la AdServer
determina la durata dell’interruzione pubblicitaria.
Creare PTAdMetadata
e imposta PTTimeRangeCollection
.
//Create the PTPlayerItem metadata
PTMetadata *metadata = [[PTMetadata alloc] init];
//Create the Ad metadata
PTAuditudeMetadata *adMetadata = [[PTAuditudeMetadata alloc] init];
adMetadata.timeRangeCollection = timerangeCollection;
adMetadata.zoneId = adZoneId;
adMetadata.domain = adDomain;
adMetadata.signalingMode = PTAdSignalingModeCustomRanges;
//Set Ad metadata
[metadata setMetadata:adMetadata forKey:PTAdResolvingMetadataKey];
//Create PTMediaPlayerItem
PTMediaPlayerItem *playerItem = [[[PTMediaPlayerItem alloc] initWithUrl:mediaUrl
mediaId:mediaId
metadata:metadata];
Anche se il signalingMode
è impostato come PTAdSignalingModeCustomRanges
, questa modalità di segnalazione pubblicitaria viene impostata automaticamente quando si imposta PTTimeRangeCollection
di tipo PTTimeRangeCollectionTypeReplace
.
Crea il lettore e avvia la riproduzione.
//Create PTMediaPlayer using the created PTMediaPlayer
PTMediaPlayer *player = [PTMediaPlayer playerWithMediaPlayerItem:playerItem];
//Add player to the player UIView
[self.playerView addSubview:(UIView *)player.view];
//Start playback
[player play];
Per implementare PTTimeRangeCollection
ed elimina intervalli di contenuti come annunci:
Prepara il PTTimeRangeCollection
.
Imposta il tipo di PTTimeRangeCollection
a PTTimeRangeCollectionTypeDeleteRanges
, che notifica a TVSDK che gli intervalli forniti devono essere eliminati.
#define PSDK_TIMESCALE 100000
NSArray *ranges = @[
[PTReplacementRange replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(0, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))],
[PTReplacementRange replacementRangeWithRange:CMTimeRangeMake(CMTimeMakeWithSeconds
(120, PSDK_TIMESCALE),CMTimeMakeWithSeconds(60, AD_TIMESCALE))]
];
PTTimeRangeCollection *timeRangeCollection =
[[PTTimeRangeCollection alloc] initWithRanges:ranges
type:PTTimeRangeCollectionTypeDeleteRanges];
Creare PTAdMetadata
e imposta PTTimeRangeCollection
.
//Create the PTPlayerItem metadata
PTMetadata *metadata = [[PTMetadata alloc] init];
//Create the Ad metadata
PTAuditudeMetadata *adMetadata = [[PTAuditudeMetadata alloc] init];
adMetadata.timeRangeCollection = timerangeCollection;
adMetadata.zoneId = adZoneId;
adMetadata.domain = adDomain;
adMetadata.signalingMode = PTAdSignalingModeServerMap;
//Set Ad metadata
[metadata setMetadata:adMetadata forKey:PTAdResolvingMetadataKey];
//Create PTMediaPlayerItem
PTMediaPlayerItem *playerItem = [[[PTMediaPlayerItem alloc] initWithUrl:mediaUrl
mediaId:mediaId
metadata:metadata];
L’inserimento dell’annuncio avviene dopo l’eliminazione degli intervalli personalizzati in base al PTAdMetadata
e l'attuale PTAdSignalingMode
.
Crea il lettore e avvia la riproduzione.
//Create PTMediaPlayer using the created PTMediaPlayer
PTMediaPlayer *player = [PTMediaPlayer playerWithMediaPlayerItem:playerItem];
//Add player to the player UIView
[self.playerView addSubview:(UIView *)player.view];
//Start playback
[player play];