Nexus Player (Android TV) YouTubeAndroidPlayerApi error: Произошла ошибка при инициализации проигрывателя YouTube.

Я использую API-интерфейс Android-плеера YouTube для воспроизведения некоторых видео на YouTube. Мой код отлично работает на:

Самсунг С3

Вкладка Samsung Galaxy III

Nexus 7 (с Android 5.1.1)

Но это не работает на Nexus Player. Я получаю сообщение об ошибке:

«Произошла ошибка при инициализации проигрывателя YouTube».

Мое приложение Youtube на плеере Nexus — версия 1.0.5.5.

Я не видел ни признаков того, что приложение YouTube устарело, ни способа его обновить. Если это проблема, я дам инструкции о том, как обновить его.

Я думаю, что мой манифест в порядке:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="coacb.org.examplevideoondemandapp" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".vodActivity" />
        <activity
            android:name=".youtubePlayer"
            android:label="@string/title_activity_youtube_player" >
        </activity>
        <activity
            android:name=".webviewInfo"
            android:label="@string/title_activity_webview_info" >
        </activity>
    </application>

</manifest>

заранее спасибо


person Ohiovr    schedule 24.06.2015    source источник


Ответы (2)


Это связано с тем, что YouTube SDK для Android (пока) не поддерживает Android TV.

С технической точки зрения, я полагаю, что приложение YouTube для ТВ имеет другое имя пакета, а YouTube SDK использует установленное приложение YouTube для отображения видео (оно действует как «удаленный просмотр» для YouTube). Несмотря на то, что SDK недавно был обновлен до версии 1.2.1, поддержка ТВ не была введена.

person Sebastiano    schedule 24.06.2015
comment
Следует отметить, что многие из YouTubeIntents действительно работают на Android TV, даже если ни один из остальных API не работает. - person ianhanniballake; 24.06.2015

Благодаря предложениям и комментариям от dextor и ianhanniballake я смог заставить его работать хорошо со следующим кодом:

    String videoID = "ARM42-eorzE";//youtube video id
    if (getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)
            || getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)){
        Intent youtubeIntent = YouTubeIntents.createPlayVideoIntent(getContext(), videoID);
        context.startActivity(youtubeIntent);
    } else {
        Intent myIntent = new Intent(getContext(), youtubePlayer.class);
        myIntent.putExtra("youtubeID",videoID);
        context.startActivity(myIntent);
    }
person Ohiovr    schedule 24.06.2015