标签: google-cast-sdk

Android ChromeCast RuntimeException:远程加载失败.没有发现本地回退

我在我的应用程序中使用强制转换功能.它工作正常但突然间我可以看到Play商店控制台上崩溃次数的增加.

我正在按照指南中的定义正确初始化CastContext.此外,我在调用此方法之前检查设备是否兼容CastContext.getSharedInstance(context)所以这应该不是问题.

即使在使用或不使用google-play-services的模拟器上,我也无法重现此崩溃.

任何帮助将不胜感激.

崩溃:

致命异常:java.lang.RuntimeException:无法启动活动ComponentInfo {....activity.TVActivityPhone}:java.lang.RuntimeException:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败.没有发现本地回退.在Android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)android.app.A活动.活动(活动传递.) .ActivityThread $ H.handleMessage(ActivityThread.java:1584)在android.app.Loper.loop(Looper.java:194)的android.app.Handler.dispatchMessage(Handler.java:111)android.app.ActivityThread. main(ActivityThread.java:5877)位于java.lang.reflect.Method.invoke(Method.java)的java.lang.reflect.Method.invoke(Method.java:372),位于com.android.internal.os.ZygoteInit com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)中的$ MethodAndArgsCaller.run(ZygoteInit.java:1020)由java.lang.RuntimeException引起:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败.没有发现本地回退.

代码我在条件中收到错误,如果条件意味着,它不是关于谷歌播放服务的可用性.

   if (googlePlayServicesVerified(context)) {  // checking (result==ConnectionResult.SUCCES)
      Log.d("TAG", "instantiated");
      castContext = CastContext.getSharedInstance(context);
    } else {
      Log.e(TAG, "FAILED");
    }
Run Code Online (Sandbox Code Playgroud)

提交给谷歌的bug:

https://issuetracker.google.com/issues/65359941

**更新**检查以下两个问题:

https://issuetracker.google.com/issues/65359941 https://issuetracker.google.com/issues/79405933

临时解决方案在我的回答中.

android google-cast android-cast-api google-cast-sdk

14
推荐指数
1
解决办法
2583
查看次数

构建错误 - 目标操作系统版本不支持使用线程局部变量

以下错误是什么意思?我以前从未见过这个.

d:目标操作系统版本不支持在__ZN12base_logging10LogMessage5FlushEv中使用线程局部变量用于体系结构x86_64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我正在使用cocoapod for google cast sdk并在Xcode 10 beta和xcode 9.4中构建.

xcode objective-c ios cocoapods google-cast-sdk

11
推荐指数
3
解决办法
4041
查看次数

有人用 Jetpack Compose 成功实现了 Googlecast sdk 吗?你采取了什么方法?

我目前正在尝试将 Google Cast sdk 添加到纯 Compose 应用程序中。

我用各种方法遇到了几个问题。我想知道是否有其他人实现了这一目标,如果是的话,他们采取了什么方法?

我尝试在活动级别添加强制转换实现,并使用流和回调与可组合项进行通信。通过此实现,我坚持能够将迷你控制器添加到活动(单个活动应用程序),因为它是一个撰写活动。

我尝试使用 AndroidViewBinding 可组合项以推荐的组合方式添加迷你控制器片段,但使用推荐的方法它不会膨胀。

我什至尝试覆盖 AndroidViewBinding 可组合项并手动膨胀,这在一定程度上有效,但随后我遇到了内存泄漏问题。

我知道这是一个非常广泛的问题,所以我只是在寻找一些总体方向,如果有人成功地做到了这一点,我很高兴详细说明我迄今为止所尝试的内容。

android google-cast google-cast-sdk android-jetpack-compose

9
推荐指数
0
解决办法
474
查看次数

为什么 Chromecast 无法流式传输此 HLS 视频?“未找到 ID3 和 ADTS 标头”/错误 NETWORK/315

我正在尝试通过发件人应用将一些 URL 流式传输到我的 Chromecast。它们是 HLS/m3u8 URL。

这是一个这样的示例 URL:https : //qa-apache-php7.dev.kaltura.com/p/1091/sp/109100/playManifest/entryId/0_wifqaipd/protocol/https/format/applehttp/flavorIds/0_h65mfj7f,0_3flmvnwc, 0_m131krws,0_5407xm9j/a.m3u8

然而,尽管其他 HLS/m3u8 URL 有效(有效的 HLS 流示例),但它们似乎从未加载到 Chromecast 上。

它与 CORS 无关,因为它们确实具有正确的 CORS 标头。

我注意到它们在根 HLS 清单文件中有单独的音频组。

当我将它连接到自定义接收器应用程序时,我得到以下日志:

在此处输入图片说明

相关位是(我认为):在 0 和 cast.player.api.ErrorCode.NETWORK/315 处都没有找到 ID3 和 ADTS 标头(我认为这是第一个的结果)

这些是完全有效/有效的 HLS URL。它们可以在 iOS 和桌面上的 Safari 以及 VLC 中完美播放。

我需要做些什么(在我的发送方应用程序或接收方应用程序中)才能启用诸如音轨之类的功能?文档似乎表明了这一点

我还发现了这个谷歌问题,其中有人遇到了类似的问题,但以某种我无法理解的方式解决了它。https://issuetracker.google.com/u/1/issues/112277373

如何在 Chromecast 上正确播放此 URL?我要在代码中做些什么吗?

http-live-streaming google-cast chromecast hls.js google-cast-sdk

8
推荐指数
1
解决办法
2086
查看次数

Google Cast定制接收器超时

使用Google CAF Receiver SDK,当我们不使用接收器播放器时,我们如何防止接收器超时并自动终止强制转换会话?

标准的Google Cast用例是将媒体从设备发送到投射接收器,让接收器使用播放器渲染媒体.该CAF接收器SDK在一个美丽的,简单的方法提供了这个功能使用元素 cast-media-player.

但是对于那些我们想要从设备进行投射并渲染与使用不相关的内容cast-media-player(例如HTML仪表板)的情况,我们如何让接收器保持活力?

例如,以下自定义接收器(简称为HAML)导致演员会话在5分钟后自动终止...

!!! 5
%html
  %head
    :css
      cast-media-player {
        display: none;
      }

    = javascript_include_tag 'https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js'
  %body
    %cast-media-player

    :javascript
      const context = cast.framework.CastReceiverContext.getInstance();
      const player = context.getPlayerManager();

      player.setMessageInterceptor(cast.framework.messages.MessageType.LOAD, loadRequestData => {
        ...[load custom view]...
        return false;
      });

      context.start();
Run Code Online (Sandbox Code Playgroud)

接收器日志显示该行cast.framework.common.IdleTimeoutManager] timer expired然后关闭.此处显示示例接收器日志.

我试过了:

很感谢任何形式的帮助!

google-cast chromecast google-cast-sdk caf-receiver-sdk

7
推荐指数
3
解决办法
1314
查看次数

使用IFrame方法将Youtube视频投射到自定义CAF接收器

我正在尝试创建一个自定义接收器应用程序,该应用程序可以使用iframe方法播放youtube视频。

我找不到在Cast框架中将YouTube播放器链接到的文档。

注意:我正在使用CAF接收器框架。

基本上,我想将Cast Receiver框架与Youtube Iframe方法联系起来。

任何帮助将不胜感激。

google-cast google-cast-sdk

6
推荐指数
0
解决办法
346
查看次数

在"当前播放"投射屏幕中设置文本颜色的样式

我找不到一种方法来保持我的应用程序样式,并在"当前播放"弹出屏幕中显示文本.它在白色为白色,如下图所示.

似乎textColor用于文本,colorPrimary用于背景.我有两个白色,因为它在应用程序的其他部分使用.有没有办法只给这个对话框一个主题?

<style name="Theme.MyTheme" parent="Theme.AppCompat">
    <!-- colorPrimary is used for the default action bar background -->
    <item name="colorPrimary">@color/white</item>

    <!-- colorPrimaryDark is used for the status bar background -->
    <item name="colorPrimaryDark">@color/black</item>

    <!-- Light action bar starting with Android M -->
    <!-- <item name="android:windowLightStatusBar">true</item> -->

    <!-- colorAccent is used as the default value for colorControlActivated, which is used to tint widgets -->
    <item name="colorAccent">@color/accent</item>

    <item name="colorControlNormal">@color/gray</item>
    <item name="colorControlHighlight">@color/gray_lighter</item>

    <!-- Customize actionbar element in white because we use a Light Theme with a …
Run Code Online (Sandbox Code Playgroud)

google-cast chromecast google-cast-sdk

6
推荐指数
1
解决办法
192
查看次数

找不到可接受的模块。本地版本为 0,远程版本为 0

在 Android 项目中添加 Bitmovin Cast 后,我​​在不同的设备上遇到了很多相同的问题。

解决方案没有帮助。

GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(getContext()) 
Run Code Online (Sandbox Code Playgroud)

- 返回 0(成功)

但应用程序崩溃。

Caused by java.lang.RuntimeException: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module found. Local version is 0 and remote version is 0.
       at com.google.android.gms.internal.cast.zze.zzf(Unknown Source:51)
       at com.google.android.gms.internal.cast.zze.zza(Unknown Source:1)
       at com.google.android.gms.cast.framework.CastContext.(Unknown Source:37)
       at com.google.android.gms.cast.framework.CastContext.getSharedInstance(Unknown Source:6)
       at com.bitmovin.player.BitmovinPlayer.(SourceFile:106)
       at com.bitmovin.player.BitmovinPlayer.(SourceFile:82)
       at com.bitmovin.player.BitmovinPlayer.(SourceFile:71)
       at com.bitmovin.player.BitmovinPlayerView.(SourceFile:134)
       at com.bitmovin.player.BitmovinPlayerView.(SourceFile:120)
Run Code Online (Sandbox Code Playgroud)

所以,谷歌播放服务版本是可以的。

android google-play-services android-cast-api google-cast-sdk

6
推荐指数
2
解决办法
2万
查看次数

Chromecast是否支持从Reddit投射视频?(HLS和Dash视频)

与URL称为代理//192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLSPlaylist.m3u8 HTTP 调用代理与URL 的http://192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_540_v4.m3u8 调用与URL代理HTTP:// 192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_AUDIO_160_K_v4.m3u8 称为URL的代理http://192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_224_v4.m3u8

这是Reddit视频的示例:https : //www.reddit.com/r/me_irl/comments/b3vrs4/me_irl

查看JSON,它有一些视频源选项:

"reddit_video": {
    "dash_url": "https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd",
    "duration": 76,
    "fallback_url": "https://v.redd.it/3hyw7hwoajn21/DASH_720?source=fallback",
    "height": 720,
    "hls_url": "https://v.redd.it/3hyw7hwoajn21/HLSPlaylist.m3u8",
    "is_gif": false,
    "scrubber_media_url": "https://v.redd.it/3hyw7hwoajn21/DASH_240",
    "transcoding_status": "completed",
    "width": 1280
}
Run Code Online (Sandbox Code Playgroud)

虽然我似乎可以使其他HLS / m3u8视频与Chromecast SDK配合使用(例如Google自己的示例HLS视频),但似乎无法使所有这些资源都可以使用。

我尝试将流类型设置为“实时”或“缓冲”的https://v.redd.it/3hyw7hwoajn21/HLSPlaylist.m3u8,我尝试将内容类型设置为“ application / x-mpegURL”,并且我对内容URL 为“ application / dash + xml” 的破折号网址https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd尝试了相同的操作,但也无济于事。我发现这个问题似乎暗示了某种可能性?

我还注意到DASH文件中存在单独的视频和音频流(https://v.redd.it/3hyw7hwoajn21/DASH_720和 …

http-live-streaming google-cast chromecast mpeg-dash google-cast-sdk

5
推荐指数
2
解决办法
919
查看次数

从正在特定Chromecast上播放的当前曲目中检索媒体信息

我正在制作一个网页,控制在特定的Chromecast(网络上有多个)上正在播放的内容,但是Google Cast SDK遇到了问题。

我既不需要发送者应用程序,也不需要注册API密钥,只需检索当前正在播放的媒体信息即可。

在Android智能手机上,您可以自动获得这些信息作为通知,也可以直接在Google Home应用程序中获得这些信息,如下面的2张屏幕截图所示,即使您不是广播媒体的人也是如此。

自动通知 通过Google Home应用

本主题讨论的是与Android应用类似的内容,但我在Chrome Sender API(javascript)中找不到任何类似的概念。

使用Chrome Sender API,我可以通过基本的网络应用将媒体加载到所选的chromecast上,但这并不是我想要的。在联机文档中,我没有找到有关此特定用例的任何信息。

仅供参考,我拥有的东西:

  • ReceiverApplicationId转换为chromecast
  • Chromecast IP /名称/ Mac地址

你们中有人知道我该怎么做吗?谢谢!

javascript google-chrome google-cast google-cast-sdk

5
推荐指数
1
解决办法
131
查看次数