Я попытался реализовать элементы управления экраном блокировки для приложения потоковой передачи видео Google Chromecast с последней версией GoogleCast для iOS (2.1.0).
Я исправил пример приложения Chromecast — https://github.com/googlecast/CastVideos-ios Добавлена строка UIBackgroundModes в Info.plist Добавлена структура MediaPlayer. И добавил следующий код в 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;
}
Но я не вижу никаких элементов управления на экране блокировки во время трансляции.
Из этих источников я вижу, что для предыдущей версии Chromecast iOS SDK (2.0) было невозможно отобразить какие-либо элементы управления на экране блокировки, поскольку он закрывает сокеты, переходящие в фоновый режим.
Поддержка фонового воспроизведения видео ChromeCast iOS
Google Chromecast SDK TearDown в фоновом режиме
https://code.google.com/p/google-cast-sdk/issues/detail?id=138
Это все еще то же самое для Cast SDK 2.1.0? Или я что-то не так делаю и вообще возможно отображение элементов управления на экране блокировки во время хромкастинга? Спасибо.