2

我正在开发一个使用 GoogleCast 框架的 iOS Obj-C 应用程序。

我正在尝试通过MPNowPlayingInfoCenter

我已向我的应用程序添加了正确的权限以支持后台处理。

我正在初始化投射设备,如下所示:

self.chromeCastDeviceManager = [[GCKDeviceManager alloc] initWithDevice:self.selectedChromeCastDevice clientPackageName:[info objectForKey:@"CFBundleIdentifier"] ignoreAppStateNotifications:YES];

当我在接收器上启动媒体时,我会尝试在MPNowPlayingInfoCenter获得成功的播放响应时进行初始化。

NSInteger result = [_castControlChannel play]; 

if (!result) {
    //launch has worked
    [[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];
     }
} 

我开始相信MPNowPlayingInfoCenter仅在通过加载媒体会话时提供控件AVKit/ AVFoundation?我这样说对吗?

如果这是真的,我可能会在 Chromecast 上创建一个AVKit/ AVFoundation长的 NSInteger 。play method然后强制 AVPlayer 隐藏和静音。然后我可以捕捉媒体控件并重定向到 Chromecast?

我假设 iOS 上的 Youtube 应用程序是这样做的吗?Netflix 和 Spotify 在投射到 chromecast 时都不支持锁屏控制。

4

1 回答 1

1

我开发了一种解决方案来在锁定屏幕中显示播放器控件。我正在使用一些技巧来工作,例如 method_exchangeImplementations 和静音来播放和模拟播放器。

我也在这篇文章中回复了Google chromecast iOS SDK 是否支持锁屏控件?

到目前为止它工作正常,但可能仍需要改进。

看看https://github.com/peantunes/google-cast-ios-lock-screen

于 2017-07-10T17:17:18.683 回答