GCKSession Class

  • GCKSession is an abstract base class representing a session with a receiver device.

  • Subclasses of GCKSession must implement methods for starting and ending sessions and notify the framework of state changes.

  • Sessions are created and managed by GCKSessionManager, which uses GCKDeviceProvider to instantiate the appropriate GCKSession subclass.

  • GCKSession provides properties to access the associated device, session ID, session options, connection state, and remote media client.

GCKSession Class Reference

Overview

An abstract base class representing a session with a receiver device.

Subclasses must implement the start (GCKSession(Protected)) and endWithAction: (GCKSession(Protected)) methods, and must call the appropriate notifier methods (for example, notifyDidStartWithSessionID: (GCKSession(Protected))) to indicate corresponding changes in the session state. Subclasses may also implement setDeviceVolume: (GCKSession), setDeviceMuted: (GCKSession) and remoteMediaClient if the device supports such operations.

A session is created and controlled using the session methods in GCKSessionManager, which uses the appropriate GCKDeviceProvider to create the session, and then delegates session requests to that GCKSession object.

Since
3.0

Inherits NSObject.

Inherited by GCKCastSession.

Instance Method Summary

  Initializes a new session object for the given device, with default options. More...
 
  Initializes a new session object for the given device. More...
 
  Sets the device's volume. More...
 
  Sets the device's mute state. More...
 
(void)  - start
  Starts the session. More...
 
(void)  - endWithAction:
  Ends the session with the specified action. More...
 
  Called by subclasses to notify the framework that the session has been started. More...
 
  Called by subclasses to notify the framework that the session has failed to start. More...
 
  Called by subclasses to notify the framework that the session has ended. More...
 
  Called by subclasses to notify the framework that updated device volume and mute state has been received from the device. More...
 
  Called by subclasses to notify the framework that updated status has been received from the device. More...
 
  Deprecated, do not use - implemented as a no-op. More...
 
(void)  - notifyDidResume
  Deprecated, do not use - implemented as a no-op. More...
 

Property Summary

  The device that this session is associated with. More...
 
NSString *  sessionID
  The current session ID, if any. More...
 
GCKSessionOptions *  sessionOptions
  The session options, if any. More...
 
GCKConnectionState  connectionState
  The current session connection state. More...
 
BOOL  suspended
  A flag indicating whether the session is currently suspended. More...
 
NSString *  deviceStatusText
  The current device status text. More...
 
  The session traits. More...
 
  The current device volume, in the range [0.0, 1.0]. More...
 
  The current device mute state. More...
 
  The GCKRemoteMediaClient object that can be used to control media playback in this session. More...
 
  The current media metadata, if any. More...
 

Method Detail

- (instancetype) initWithDevice: (GCKDevice *)  device
traits: (nullable GCKSessionTraits *)  traits
sessionID: (nullable NSString *)  sessionID 

Initializes a new session object for the given device, with default options.

Parameters
device The device.
traits The session traits.
sessionID The session ID of an existing session, if this object will be used to resume a session; otherwise nil if it will be used to start a new session.
- (instancetype) initWithDevice: (GCKDevice *)  device
traits: (nullable GCKSessionTraits *)  traits
sessionID: (nullable NSString *)  sessionID
sessionOptions: (nullable GCKSessionOptions *)  sessionOptions 

Initializes a new session object for the given device.

Parameters
device The device.
traits The session traits.
sessionID The session ID of an existing session, if this object will be used to resume a session; otherwise nil if it will be used to start a new session.
sessionOptions The session options, if any; otherwise nil.
Since
4.0
- (GCKRequest *) setDeviceVolume: (float)  volume

Sets the device's volume.

This is an asynchronous operation. The default implementation is a no-op that fails the request with a GCKErrorCodeUnsupportedFeature error.

Parameters
volume The new volume.
Returns
A GCKRequest object for tracking the request.
Since
3.4; in previous framework versions, this method returned void.
- (GCKRequest *) setDeviceMuted: (BOOL)  muted

Sets the device's mute state.

This is an asynchronous operation. The default implementation is a no-op that fails the request with a GCKErrorCodeUnsupportedFeature error.

Parameters
muted The new mute state.
Returns
A GCKRequest object for tracking the request.
Since
3.4; in previous framework versions, this method returned void.
- (void) start

Starts the session.

This is an asynchronous operation. Must be overridden by subclasses.

Provided by category GCKSession(Protected).

- (void) endWithAction: (GCKSessionEndActionaction

Ends the session with the specified action.

This is an asynchronous operation. Must be overridden by subclasses.

Parameters
action The action to take when ending the session; see GCKSessionEndAction for more details.

Provided by category GCKSession(Protected).

- (void) notifyDidStartWithSessionID: (NSString *)  sessionID

Called by subclasses to notify the framework that the session has been started.

Parameters
sessionID The session's unique ID.

Provided by category GCKSession(Protected).

- (void) notifyDidFailToStartWithError: (GCKError *)  error

Called by subclasses to notify the framework that the session has failed to start.

Parameters
error The error that occurred.

Provided by category GCKSession(Protected).

- (void) notifyDidEndWithError: (nullable NSError *)  error
willTryToResume: (BOOL)  willTryToResume 

Called by subclasses to notify the framework that the session has ended.

Parameters
error The error that caused the session to end, if any. Should be nil if the session was ended intentionally.
willTryToResume Whether the session will try to resume itself automatically.

Provided by category GCKSession(Protected).

- (void) notifyDidReceiveDeviceVolume: (float)  volume
muted: (BOOL)  muted 

Called by subclasses to notify the framework that updated device volume and mute state has been received from the device.

Parameters
volume The device's current volume. Must be in the range [0, 1.0];
muted The device's current mute state.

Provided by category GCKSession(Protected).

- (void) notifyDidReceiveDeviceStatus: (nullable NSString *)  statusText

Called by subclasses to notify the framework that updated status has been received from the device.

Parameters
statusText The new status.

Provided by category GCKSession(Protected).

- (void) notifyDidSuspendWithReason: (GCKConnectionSuspendReasonreason

Deprecated, do not use - implemented as a no-op.

Deprecated:
Do not call.

Provided by category GCKSession(Protected).

- (void) notifyDidResume

Deprecated, do not use - implemented as a no-op.

Deprecated:
Do not call.

Provided by category GCKSession(Protected).

Property Detail

- (GCKDevice*) device
readnonatomicstrong

The device that this session is associated with.

- (NSString*) sessionID
readnonatomiccopy

The current session ID, if any.

- (GCKSessionOptions*) sessionOptions
readnonatomicstrong

The session options, if any.

Since
4.0
- (GCKConnectionState) connectionState
readnonatomicassign

The current session connection state.

- (BOOL) suspended
readnonatomicassign

A flag indicating whether the session is currently suspended.

Deprecated:
GCKSession no longer supports being in suspended state. If needed, move this functionality to a subclass.
- (NSString*) deviceStatusText
readnonatomiccopy

The current device status text.

- (GCKSessionTraits*) traits
readnonatomiccopy

The session traits.

- (float) currentDeviceVolume
readnonatomicassign

The current device volume, in the range [0.0, 1.0].

- (BOOL) currentDeviceMuted
readnonatomicassign

The current device mute state.

- (GCKRemoteMediaClient*) remoteMediaClient
readnonatomicstrong

The GCKRemoteMediaClient object that can be used to control media playback in this session.

It is nil before the session has started, or if the session does not support the GCKRemoteMediaClient API. Subclasses which provide a GCKRemoteMediaClient interface must override the getter method.

- (GCKMediaMetadata*) mediaMetadata
readnonatomicstrong

The current media metadata, if any.

Will be nil if the session does not support the media namespace or if no media is currently loaded on the receiver.

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.