【发布时间】:2021-03-27 13:47:30
【问题描述】:
我像这样在application: didFinishLaunching 中初始化 Google Cast SDK:
let criteria = GCKDiscoveryCriteria(applicationID: kGCKDefaultMediaReceiverApplicationID)
let options = GCKCastOptions(discoveryCriteria: criteria)
GCKCastContext.setSharedInstanceWith(options)
我已尝试将视频内容流式传输到默认媒体接收器,它可以正常工作。
但我需要能够将 kGCKDefaultMediaReceiverApplicationID 更改为自定义接收器应用程序 ID,以将不同的内容发送到我通过 Google Cast SDK 开发人员控制台注册的自定义接收器应用程序。我无法重新启动应用程序以指定不同的应用程序 ID。
在调用GCKCastContext.setSharedInstanceWith(options) 之后,有什么方法可以在应用程序中的某个时间点动态执行此操作?
此方法的调用只工作一次,我无法更新 GCKDiscoveryCriteria:GCKCastContext.setSharedInstanceWith(options)
我使用“google-cast-sdk-no-bluetooth”,版本:4.5.3
在 Android SDK 中,有一种方法可以即时更改接收者应用 ID:https://developers.google.com/android/reference/com/google/android/gms/cast/framework/CastContext#public-void-setreceiverapplicationid-string-applicationid
不幸的是,我在 iOS SDK 中没有看到类似的东西 :(
我唯一找到的是这个(在 GCKSessionManager 中):
/**
* Sets the default session options for the given device category.The session options are passed to
* the GCKDeviceProvider::createSessionForDevice:sessionID:sessionOptions: method when the user
* selects a device from the Cast dialog. For Cast sessions, the session options can specify which
* receiver application to launch.
*
* @param sessionOptions The session options. May be <code>nil</code> to remove any previously set
* options.
* @param category The device category.
*
* @since 4.0
*/
- (void)setDefaultSessionOptions:(nullable GCKSessionOptions *)sessionOptions
forDeviceCategory:(NSString *)category;
但是没有关于要传递哪个 sessionOptions 和类别的文档(类别可能是 kGCKCastDeviceCategory)。无法理解存在哪些参数以及如何构造它们。
【问题讨论】:
-
你最终解决了这个问题吗?
-
@natus 不,我还没有解决它(
-
认为这是不可能的,因为没有管理 Google Cast SDK 内部单例实例的方法,并且一旦使用
setSharedInstanceWith初始化,您就无法更改其选项。 -
@iUrii 好吧,我特地问了这个问题来寻找答案。我相信这是可能的,也许是以一种骇人听闻的方式或作为一种解决方法。也许在
setDefaultSessionOptions中指定所需的参数。我写信给 Google 开发人员支持,在 Github 和他们的 IssueTracker 上创建了问题。到目前为止还没有收到任何答案,但是这个用例很重要。 issuetracker.google.com/issues/175803965
标签: ios swift xcode chromecast google-cast