From reading the SDK Docs, the boolean physicalVolumeButtonsWillControlDeviceVolume should allow the physical volume buttons on the iPhone control the chromecast volume as seen here:
The physical volume buttons on the sender device can be used to change the volume of the Cast session on the Web Receiver using the physicalVolumeButtonsWillControlDeviceVolume flag on the GCKCastOptions, which is set on the GCKCastContext.
I've implemented their example exactly, but my volume controls don't forward anything to chrome cast, it just seems to disable them. If I change the boolean to false, it returns control to iPhone volume, but obviously doesn't send it to the cast. Here's my code:
discoveryCriteria = GCKDiscoveryCriteria(applicationID: applicationID)
let options = GCKCastOptions(discoveryCriteria: discoveryCriteria!)
options.physicalVolumeButtonsWillControlDeviceVolume = true
options.disableDiscoveryAutostart = true
options.startDiscoveryAfterFirstTapOnCastButton = false
GCKCastContext.setSharedInstanceWith(options)
I've been looking for some other requirement for physical volume control, but can't find anything other than this.