无法在onActivityResult()中提示视频

时间:2018-11-28 10:58:52

标签: java android youtube android-youtube-api onactivityresult

我有两个活动:MainActivity有一个youtubePlayerView用于显示来自YouTube的视频,还有一个按钮“选择”,ChoseVideoActivity有两个按钮,带有文本“ Video1”和“ Video2”。

MainActivity,我单击“选择”按钮以打开ChoseVideoActivity。在ChoseVideoActivity中,我可以单击两个按钮之一。

点击带有文本“ video1”的按钮,活动将发回视频1的YouTube ID。当单击带有文本“ video2”的按钮时,活动将发回视频2的YouTube ID。

onActivityResult中,我用发送回的ID呼叫cueVideo()。 它应该起作用,但是没有。 当我从事同一活动时,效果很好。

我使用了YouTube Android播放器API。

MainActivity中的onActivityResult()

 private void addEvents() {
    btChose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, ChoseVideoActivity.class);
            startActivityForResult(intent,REQUEST_CODE);
        }
    });
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == REQUEST_CODE && resultCode == RESULT_OK && data!=null) 
    {
        String link = data.getStringExtra("LINK");
        player.cueVideo(link);
        Toast.makeText(this, link, Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
    player = youTubePlayer;
}

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
    Toast.makeText(this, "Error!",Toast.LENGTH_LONG).show();
}

ChoseVideoActivity中的点击监听器

private void addEvents() {
    btVideo1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("LINK",link_video1);
            setResult(RESULT_OK,intent);
            finish();

        }
    });
    btVideo2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("LINK",link_video2);
            setResult(RESULT_OK,intent);
            finish();

        }
    });
}

1 个答案:

答案 0 :(得分:0)

由于我是新来的,所以我无法对您的信息发表评论。您的代码似乎还可以。因为我们看不到如何打开下一个活动,所以我想确定一下,您是否真的使用startActivityForResult函数来打开第二个活动? 像这样:

Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, 0);