单击投射图标时chromecast崩溃

时间:2018-10-28 15:27:33

标签: java android chromecast google-cast-sdk

******编辑*****

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

大家好,我想向我的android应用添加chromecast功能。香港专业教育学院一直遵循Google Cast开发页面上的代码实验室教程,香港专业教育学院设法使用那里的测试应用程序使其工作。但是,当我尝试将代码从测试应用复制到自己的应用时,我可以选择连接到我的测试设备。但是一旦连接,它就会重置我的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,但实际上并没有连接..我也有一个Google扬声器,在本教程中它将提供与此连接。它甚至不会显示在我的应用中。

有人可以帮我吗

以下是指向本教程的链接 codelabs cast tutorial

1 个答案:

答案 0 :(得分:0)

解决了此问题,这是我需要向服务器添加自定义接收器。它崩溃了,因为我试图使用Google开发人员页面中的基本基本接收者。 基本接收者仅允许mp4流和直接视频源。但是因为我使用的是YouTube流,所以不得不使用github的软件包。其中包括要上传的自定义收件人。

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

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

我也要感谢Pier Francescosoffritti他为此付出的辛勤工作