jellyflood/Frameworks/GoogleCastSDK.xcframework/ios-arm64/GoogleCast.framework/Headers/GCKAdBreakClipInfo.h

195 lines
5.5 KiB
Objective-C
Executable File

// Copyright 2013 Google Inc.
#import <Foundation/Foundation.h>
#import <GoogleCast/GCKDefines.h>
#import <GoogleCast/GCKMediaRequestItem.h>
#import <GoogleCast/GCKVastAdsRequest.h>
NS_ASSUME_NONNULL_BEGIN
/**
* The value for the @ref whenSkippable field if an ad is not skippable.
*
* @since 4.3
*/
GCK_EXTERN const int kAdBreakClipNotSkippable;
// This is left here for backwards compatibility reasons.
GCK_EXPORT
GCK_DEPRECATED("Deprecated. Use GCKVASTAdsRequest instead.")
@interface GCKAdBreakClipVastAdsRequest : GCKVASTAdsRequest
@end
/**
* A class representing an ad break clip.
*
* @since 3.3
*/
GCK_EXPORT
@interface GCKAdBreakClipInfo : NSObject <NSCopying, NSSecureCoding>
/** A string that uniquely identifies this ad break clip. */
@property(nonatomic, readonly) NSString *adBreakClipID;
/** The clip's duration. */
@property(nonatomic, readonly) NSTimeInterval duration;
/** The clip's title. */
@property(nonatomic, readonly, nullable) NSString *title;
/** The click-through URL for this clip. */
@property(nonatomic, readonly, nullable) NSURL *clickThroughURL;
/** URL for the content that represents this clip (typically an image). */
@property(nonatomic, readonly, nullable) NSURL *contentURL;
/** MIME type of the content referenced by @ref contentURL. */
@property(nonatomic, readonly, nullable) NSString *mimeType;
/**
* The content's ID.
* @since 4.1
*/
@property(nonatomic, readonly, nullable) NSString *contentID;
/**
* The poster URL for this clip.
* @since 4.1
*/
@property(nonatomic, readonly, nullable) NSURL *posterURL;
/**
* The length of time into the clip when it can be skipped in seconds.
* @since 4.3
*/
@property(nonatomic, readonly) NSTimeInterval whenSkippable;
/**
* The HLS segment format for this clip.
* @since 4.1
*/
@property(nonatomic, readonly) GCKHLSSegmentFormat hlsSegmentFormat;
/**
* The VAST ad request configuration if any. See more here:
* <a href="https://www.iab.com/guidelines/digital-video-ad-serving-template-vast-4-0/">
* Digital Video Ad Serving Template 4.0</a>.
* If this is non-nil, all other fields will be ignored.
*
* @since 4.1
*/
@property(nonatomic, readonly, nullable) GCKVASTAdsRequest *vastAdsRequest;
/** Custom application-specific data associated with the clip. */
@property(nonatomic, strong, readonly, nullable) id customData;
- (instancetype)init NS_UNAVAILABLE;
@end // GCKAdBreakClipInfo
/**
* A builder object for constructing new or derived GCKAdBreakClipInfo instances. The builder may
* be used to derive a GCKAdBreakClipInfo from an existing one:
*
* @code
* GCKAdBreakClipInfoBuilder *builder =
* [[GCKAdBreakClipInfoBuilder alloc] initWithAdBreakClipInfo:originalAdBreakClipInfo];
* builder.adBreakClipID = ...; // Change the ad break clip ID.
* builder.duration = 100; // Change the ad break's duration.
* GCKAdBreakClipInfo *derivedAdBreakClipInfo = [builder build];
* @endcode
*
* It can also be used to construct a new GCKAdBreakClipInfo from scratch:
*
* @code
* GCKAdBreakClipInfoBuilder *builder =
* [[GCKAdBreakClipInfoBuilder alloc] initWithAdBreakClipID:...];
* builder.title = ...;
* builder.contentURL = ...;
* builder.contentID = ...;
* // Set all other desired propreties...
* GCKAdBreakClipInfo *newAdBreakClipInfo = [builder build];
* @endcode
*
* @since 4.3.4
*/
GCK_EXPORT
@interface GCKAdBreakClipInfoBuilder : NSObject
/** A string that uniquely identifies this ad break clip. */
@property(nonatomic, copy) NSString *adBreakClipID;
/** The clip's duration. */
@property(nonatomic) NSTimeInterval duration;
/** The clip's title. */
@property(nonatomic, copy, nullable) NSString *title;
/** The click-through URL for this clip. */
@property(nonatomic, copy, nullable) NSURL *clickThroughURL;
/** URL for the content that represents this clip (typically an image). */
@property(nonatomic, copy, nullable) NSURL *contentURL;
/** MIME type of the content referenced by @ref contentURL. */
@property(nonatomic, copy, nullable) NSString *mimeType;
/**
* The content's ID.
*/
@property(nonatomic, copy, nullable) NSString *contentID;
/**
* The poster URL for this clip.
*/
@property(nonatomic, copy, nullable) NSURL *posterURL;
/**
* The length of time into the clip when it can be skipped in seconds.
*/
@property(nonatomic) NSTimeInterval whenSkippable;
/**
* The HLS segment format for this clip.
*/
@property(nonatomic) GCKHLSSegmentFormat hlsSegmentFormat;
/**
* The VAST ad request configuration if any. See more here:
* <a href="https://www.iab.com/guidelines/digital-video-ad-serving-template-vast-4-0/">
* Digital Video Ad Serving Template 4.0</a>.
*/
@property(nonatomic, nullable) GCKVASTAdsRequest *vastAdsRequest;
/** Custom application-specific data associated with the clip. */
@property(nonatomic, nullable) id customData;
/**
* Constructs a new GCKAdBreakClipInfoBuilder with all of the fields of the adBreakClipInfo object.
*
* @param adBreakClipInfo The ad break clip info to get the fields from.
*/
- (instancetype)initWithAdBreakClipInfo:(GCKAdBreakClipInfo *)adBreakClipInfo;
/**
* Constructs a new GCKAdBreakClipInfoBuilder with the ad break clip ID and all other attributes
* initialized to default values.
*
* @param adBreakClipID The clip ID of the ad break clip info.
*/
- (instancetype)initWithAdBreakClipID:(NSString *)adBreakClipID NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
/**
* Builds a GCKAdBreakClipInfo using the builder's current attributes.
*
* @return The new GCKAdBreakClipInfo instance.
*/
- (GCKAdBreakClipInfo *)build;
@end // GCKAdBreakClipInfoBuilder
NS_ASSUME_NONNULL_END