android - YouTube Android Player API在Amazon Fire TV上不起作用

标签 android youtube amazon amazon-fire-tv

我需要实现在Amazon Fine TV中播放Youtube视频。
我愿意使用https://developers.google.com/youtube/android/player/
我的 Activity 是:

package com.ticketmaster.amazon.activity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
import com.ticketmaster.amazon.R;
import com.ticketmaster.api.helper.PropertiesHelper;

/**
 * Created by Georgii on 4/26/2016.
 */
public class PlaybackYoutubeActivity extends YouTubeBaseActivity implements  YouTubePlayer.OnInitializedListener {
    private static final int RECOVERY_REQUEST = 1;
    public static final String YOUTUBE_KEY = "-----MYKEY----------";
    private YouTubePlayerView youTubeView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_youtube);

        youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
        PropertiesHelper.loadProperties(this);
        youTubeView.initialize(YOUTUBE_KEY, this);
    }

    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
        if (!wasRestored) {
            player.cueVideo("fhWaJi1Hsfo"); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo
        }
    }

    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
        if (errorReason.isUserRecoverableError()) {
            errorReason.getErrorDialog(this, RECOVERY_REQUEST).show();
        } else {
            String errMsg = getString(R.string.video_error_unknown_error);
            Toast.makeText(this, errMsg, Toast.LENGTH_LONG).show();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RECOVERY_REQUEST) {
            // Retry initialization if user performed a recovery action
            getYouTubePlayerProvider().initialize(YOUTUBE_KEY, this);
        }
    }

    protected YouTubePlayer.Provider getYouTubePlayerProvider() {
        return youTubeView;
    }
}

activity_youtube.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout mlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".activity.PlaybackYoutubeActivity">

<com.google.android.youtube.player.YouTubePlayerView
  android:id="@+id/youtube_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"/>

</RelativeLayout>

当我运行对话框对话框并单击“获取您的按钮”时,没有任何结果。 YouTube初始化失败回调中的YouTubeInitializationResult errorReason 值为 SERVICE_MISSING 。 Youtube App已安装在Amazon Fire TV中。

有谁知道如何在Amazon Fire TV中运行Youtube Video?

最佳答案

我也遇到过同样的问题。

经过一些研究,我找到了可能的答案here

Levon @ Amazon写道,Youtube Video Player API是Google API(而不是Android API)的一部分,所以这就是为什么不起作用。

可能的解决方案可能是:

  • 侧载Google Play服务
  • 在WebView中显示YouTube视频

  • 希望这可以帮助

    关于android - YouTube Android Player API在Amazon Fire TV上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36867510/

    相关文章:

    java - 防止 WebView 在旋转时重新加载 - Android Studio

    html - 嵌入的 YouTube 代码无法验证

    javascript - 如何防止 iFrame 在按下后退按钮时自动播放?

    Amazon EC2 代码部署没有主机成功

    java - 亚马逊:TopSeller 返回超过前 10 名

    amazon-s3 - Amazon S3 无法通过 Cloudfront 上传文件

    android - 结合 Canvas 和布局 (Android)

    java - ListView 项目不响应点击

    android - 如何创建赛车场形状?

    Youtube API V3 和 Etag