【问题标题】:Chromecast crashes when cast icon clicked单击投射图标时 Chromecast 崩溃
【发布时间】:2019-04-01 15:43:42
【问题描述】:

我正在尝试将 Chromecast 功能添加到我的 Android 应用程序中。我一直在关注谷歌演员开发页面的代码实验室教程,我已经设法使用那里的测试应用程序让它工作。但是当我尝试将代码从测试应用程序复制到我自己的应用程序时,我可以选择连接到我的测试设备。但一旦连接,它只会重置我的 Chromecast,然后再次断开连接。

这是我的 CastOptionProvider 类

public final class CastOptionsProvider implements OptionsProvider {




@Override
public CastOptions getCastOptions(Context context) {
    return new CastOptions.Builder()
            .setReceiverApplicationId(context.getString(R.string.app_id))
            .build();
}

public List<SessionProvider> getAdditionalSessionProviders(Context context) {
    return null;
}
}

这是我想要 Chromecast 支持的活动 xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="studios.p9p.harrop99.p9pdocumentaries.Actual_Genres.Taboo">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

活动java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_taboo);
    setupActionBar();
    mCastContext = CastContext.getSharedInstance(this);
}

 private void setupActionBar() {
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("Taboo");
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private MenuItem mediaRouteMenuItem;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.browse, menu);
    mediaRouteMenuItem = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu, R.id.media_route_menu_item);
    return true;
}

我知道教程还没有完成,但是在教程的这一点上,我可以连接到我的测试投射设备,并且一个投射徽标出现在我的屏幕上。但在我自己的应用程序中,它会重置我的 Chromecast,但实际上并没有连接。我还有一个谷歌扬声器,在教程中它将提供连接到这个。它甚至没有显示在我的应用程序中。

Here is a link 我正在关注的教程。

编辑

我需要自定义接收器吗?如果可以,我会上传到哪里?

【问题讨论】:

    标签: java android chromecast google-cast-sdk


    【解决方案1】:

    解决了这个问题,我需要一个自定义接收器添加到我的服务器。它崩溃了,因为我试图使用谷歌开发页面中的基本接收器。 基本接收器仅允许 mp4 流和直接视频源。但是因为我使用的是 youtube 流,所以我不得不使用来自 github 的包。这包括要上传的自定义接收器。

    我使用的基本教程可以在这里找到 chromecast tutorial

    他的 github 可以在这里找到 github package and sample app

    我还要感谢 Pier Francescosoffritti 为此付出的所有辛勤工作

    【讨论】:

      猜你喜欢
      • 2014-08-10
      • 2017-04-08
      • 2015-06-27
      • 2014-07-20
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      相关资源
      最近更新 更多