GCKUIStreamPositionController Class
Stay organized with collections
Save and categorize content based on your preferences.
A class that can be used to implement a custom stream position and/or seek UI, in situations where ordinary UISlider, UIProgressView, and UILabel controls will not suffice.
The application may either subclass this class and override the GCKUIStreamPositionController::streamPosition, GCKUIStreamPositionController::streamDuration, and GCKUIStreamPositionController::inputEnabled setters, or use KVO to listen for changes to these properties, and update its stream position and/or seek UI control(s) accordingly.
- Since
- 3.4
Inherits NSObject.
- (NSTimeInterval) streamPosition |
|
readwritenonatomicassign |
The current stream position from the GCKRemoteMediaClient.
The GCKUIMediaController writes this property whenever the stream position changes; while the stream is advancing, the property will be updated once per second. The GCKUIMediaController observes the property (unless it is in the process of writing it) and if it changes, it issues the appropriate media command with the GCKRemoteMediaPlayer to seek to the new stream position. Note that updating this value on an unseekable stream will have no effect.
- (NSTimeInterval) streamDuration |
|
readwritenonatomicassign |
The current stream duration from the GCKRemoteMediaClient.
The GCKUIMediaController writes this property whenever the stream duration changes. If the stream does not have a known duration (because it is a live stream, for example), then the value written will be kGCKInvalidTimeInterval. It is not meaningful for the application to change this value.
The GCKUIMediaController writes this property to enable or disable the UI control(s) managed by this controller.
Media-related UI controls are temporarily disabled while a media command is in-flight.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-09-18 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-09-18 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eGCKUIStreamPositionController\u003c/code\u003e class facilitates the creation of custom stream position and seek UI elements for media playback on Cast receivers.\u003c/p\u003e\n"],["\u003cp\u003eIt provides properties like \u003ccode\u003estreamPosition\u003c/code\u003e, \u003ccode\u003estreamDuration\u003c/code\u003e, and \u003ccode\u003einputEnabled\u003c/code\u003e that reflect the current media playback state.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can subclass and override setters or use KVO to listen for changes to these properties and update their custom UI accordingly.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eGCKUIMediaController\u003c/code\u003e manages the values of these properties, reflecting the state of the \u003ccode\u003eGCKRemoteMediaClient\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThis class is particularly useful when standard UI controls like UISlider, UIProgressView, and UILabel are insufficient for the desired user interface.\u003c/p\u003e\n"]]],["The `GCKUIStreamPositionController` class allows custom UI implementation for stream position and seeking, especially when standard controls are insufficient. Developers can either subclass it, overriding `streamPosition`, `streamDuration`, and `inputEnabled` setters, or use KVO to monitor changes. Key properties include `streamPosition` (current playback time), `streamDuration` (total stream length), and `inputEnabled` (UI control interactivity). The `GCKUIMediaController` manages these, updating them and observing changes to issue media commands.\n"],null,["# GCKUIStreamPositionController Class\n\n[Instance Methods](#pub-methods) \\| [Properties](#properties) \nGCKUIStreamPositionController Class Reference \n\nOverview\n--------\n\nA class that can be used to implement a custom stream position and/or seek UI, in situations where ordinary [**UISlider**](https://goo.gl/H71tKD), [**UIProgressView**](https://goo.gl/LoRoAx), and [**UILabel**](https://goo.gl/POkr7n) controls will not suffice.\n\nThe application may either subclass this class and override the [GCKUIStreamPositionController::streamPosition](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a4c18938c7d08cab86a6d9d895cd3e006 \"The current stream position from the GCKRemoteMediaClient. \"), [GCKUIStreamPositionController::streamDuration](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a7e40db4956d06f5667cae0535fc39392 \"The current stream duration from the GCKRemoteMediaClient. \"), and [GCKUIStreamPositionController::inputEnabled](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a34802bdc97db740306dfc92ca8caf874 \"The GCKUIMediaController writes this property to enable or disable the UI control(s) managed by this ...\") setters, or use KVO to listen for changes to these properties, and update its stream position and/or seek UI control(s) accordingly.\n\nSince\n: 3.4\n\nInherits NSObject.\n\n|----------------|---------------------------------------------------------------------------------------------------------------------|\n| Instance Method Summary ----------------------- ||\n| (instancetype) | - [init](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a8bde50e65ad684623d7c6f54d70eb33b) |\n| | Designated initializer. [More...](#a8bde50e65ad684623d7c6f54d70eb33b) |\n| ||\n\n|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Property Summary ---------------- ||\n| NSTimeInterval | [streamPosition](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a4c18938c7d08cab86a6d9d895cd3e006) |\n| | The current stream position from the [GCKRemoteMediaClient](/cast/docs/reference/ios/interface_g_c_k_remote_media_client \"A class for controlling media playback on a Cast receiver. \"). [More...](#a4c18938c7d08cab86a6d9d895cd3e006) |\n| ||\n| NSTimeInterval | [streamDuration](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a7e40db4956d06f5667cae0535fc39392) |\n| | The current stream duration from the [GCKRemoteMediaClient](/cast/docs/reference/ios/interface_g_c_k_remote_media_client \"A class for controlling media playback on a Cast receiver. \"). [More...](#a7e40db4956d06f5667cae0535fc39392) |\n| ||\n| BOOL | [inputEnabled](/cast/docs/reference/ios/interface_g_c_k_u_i_stream_position_controller#a34802bdc97db740306dfc92ca8caf874) |\n| | The [GCKUIMediaController](/cast/docs/reference/ios/interface_g_c_k_u_i_media_controller \"A controller for UI views that are used to control or display the status of media playback on a Cast ...\") writes this property to enable or disable the UI control(s) managed by this controller. [More...](#a34802bdc97db740306dfc92ca8caf874) |\n| ||\n\nMethod Detail\n-------------\n\n|-----------------------|---|---|---|\n| - (instancetype) init | | | |\n\nDesignated initializer.\n\nProperty Detail\n---------------\n\n|-----------------------------------------------------------------------------|--------------------------|\n| |-----------------------------------| | - (NSTimeInterval) streamPosition | | readwritenonatomicassign |\n\nThe current stream position from the [GCKRemoteMediaClient](/cast/docs/reference/ios/interface_g_c_k_remote_media_client \"A class for controlling media playback on a Cast receiver. \").\n\nThe [GCKUIMediaController](/cast/docs/reference/ios/interface_g_c_k_u_i_media_controller \"A controller for UI views that are used to control or display the status of media playback on a Cast ...\") writes this property whenever the stream position changes; while the stream is advancing, the property will be updated once per second. The [GCKUIMediaController](/cast/docs/reference/ios/interface_g_c_k_u_i_media_controller \"A controller for UI views that are used to control or display the status of media playback on a Cast ...\") observes the property (unless it is in the process of writing it) and if it changes, it issues the appropriate media command with the GCKRemoteMediaPlayer to seek to the new stream position. Note that updating this value on an unseekable stream will have no effect. \n\n|-----------------------------------------------------------------------------|--------------------------|\n| |-----------------------------------| | - (NSTimeInterval) streamDuration | | readwritenonatomicassign |\n\nThe current stream duration from the [GCKRemoteMediaClient](/cast/docs/reference/ios/interface_g_c_k_remote_media_client \"A class for controlling media playback on a Cast receiver. \").\n\nThe [GCKUIMediaController](/cast/docs/reference/ios/interface_g_c_k_u_i_media_controller \"A controller for UI views that are used to control or display the status of media playback on a Cast ...\") writes this property whenever the stream duration changes. If the stream does not have a known duration (because it is a live stream, for example), then the value written will be [kGCKInvalidTimeInterval](/cast/docs/reference/ios/g_c_k_media_common_8h#abe8984fca7b61be2470630190b919c3b). It is not meaningful for the application to change this value. \n\n|-----------------------------------------------------|--------------------------|\n| |-----------------------| | - (BOOL) inputEnabled | | readwritenonatomicassign |\n\nThe [GCKUIMediaController](/cast/docs/reference/ios/interface_g_c_k_u_i_media_controller \"A controller for UI views that are used to control or display the status of media playback on a Cast ...\") writes this property to enable or disable the UI control(s) managed by this controller.\n\nMedia-related UI controls are temporarily disabled while a media command is in-flight."]]