iosiphonechromecastgoogle-castmpnowplayinginfocenter

Does google chromecast iOS SDK support lock screen controls?


I've tried to implement lock screen controls for google Chromecast video streaming app with the latest GoogleCast framework for iOS (2.1.0).

I've corrected the example Chromecast app - https://github.com/googlecast/CastVideos-ios Have added UIBackgroundModes row to the Info.plist enter image description here Added MediaPlayer framework. And added the following code to ChromecastDeviceController.m

#import <MediaPlayer/MPNowPlayingInfoCenter.h>
#import <MediaPlayer/MPMediaItem.h>
.......

- (BOOL)loadMedia:(NSURL *)url
     thumbnailURL:(NSURL *)thumbnailURL
            title:(NSString *)title
         subtitle:(NSString *)subtitle
         mimeType:(NSString *)mimeType
        startTime:(NSTimeInterval)startTime
         autoPlay:(BOOL)autoPlay {

    .....

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

    Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");

    if (playingInfoCenter) {

        NSDictionary *songInfo = [NSDictionary dictionaryWithObjectsAndKeys:
                                  @"Test artist", MPMediaItemPropertyArtist,
                                  @"Test title", MPMediaItemPropertyTitle,
                                  @"Test Album", MPMediaItemPropertyAlbumTitle,
                                  nil];
        [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
    }

  return YES;
}

But I don't see any controls on the lock screen during broadcasting.

From these sources I see that it wasn't possible to show any controls on the lock screen for the previous version of Chromecast iOS SDK (2.0), because it Closes sockets going to background mode.

ChromeCast background video playback support iOS

Google Chromecast SDK TearDown in background

https://code.google.com/p/google-cast-sdk/issues/detail?id=138

Is it still the same for Cast SDK 2.1.0? Or I'm doing something wrong and actually it's possible to show controls on the lock screen during chromecasting? Thanks.


Solution

  • The current iOS Cast SDK disconnects the socket when you lock your screen, so you cannot currently implement that.