尝试将YouTube视频添加到ListItem

时间:2019-03-08 07:57:37

标签: android youtube-api

我正在Android中创建一个列表视图。当我单击列表视图中的项目时,它将转到Youtubeplayer的第二个活动。但是,除了播放视频外,Youtube播放器中还显示一条消息,提示

  

初始化youtube播放器时发生错误

enter image description here

enter image description here

public class Main2Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    final String[] sublectures = {"Part 1", "Part 2"};
    ListAdapter appadapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, sublectures);
    ListView list2 = findViewById(R.id.list2);
    list2.setAdapter(appadapter1);

    list2.setOnItemClickListener(
            new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String lecture = String.valueOf(parent.getItemAtPosition(position));
                    Intent startintent = new Intent(getApplicationContext(),Main3Activity.class);
                    startActivity(startintent);

                }


            });
}}

这是Main3Activity

public class Main3Activity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {

public static final String API_KEY = "AIzaSyBdVOqvu3C-MTnmO0iNOgeKBCSmb9ULrXc";
public static final String VIDEO_ID = "W2TYS_Jvzjc";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);
    YouTubePlayerView youTubePlayerView = findViewById(R.id.youtubePlayerView);
    youTubePlayerView.initialize(API_KEY, this);
}

@Override

public void onInitializationFailure (YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult){
    Toast.makeText(this, "Fail to Load", Toast.LENGTH_LONG).show();

    }
    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {


        if (!wasRestored) {
            player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
            player.cueVideo(VIDEO_ID);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试此代码对我有用

    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;

public class VideoActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener  {
    YouTubePlayerView youTubePlayerView;
    String API_KEY="AIzaSyB2TtG6UjEtDWfzxHvQCf2DJxkUPfJI1Lc";
    private static final int RECOVERY_REQUEST = 1;
    String TAG="VideoActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video);
        youTubePlayerView=(YouTubePlayerView)findViewById(R.id.youtube);
        youTubePlayerView.initialize(API_KEY, this);
    }

    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
        Bundle bundle = getIntent().getExtras();
        String showVideo = bundle.getString("videoId");
        youTubePlayer.cueVideo(showVideo);
    }

    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
        if (youTubeInitializationResult.isUserRecoverableError()) {
            youTubeInitializationResult.getErrorDialog(this, RECOVERY_REQUEST).show();
        } else {
            Toast.makeText(this, "Error Intializing Youtube Player", Toast.LENGTH_LONG).show();
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RECOVERY_REQUEST) {
            getYouTubePlayerProvider().initialize(API_KEY, this);
        }
    }
    protected YouTubePlayer.Provider getYouTubePlayerProvider() {
        return youTubePlayerView;
    }
}