【问题标题】:Video couldn't be cued in onActivityResult()无法在 onActivityResult() 中提示视频
【发布时间】:2019-04-30 06:26:15
【问题描述】:

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

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

当点击带有文本“video1”的按钮时,Activity 发送回视频 1 的 YouTube ID。当点击带有文本“video2”的按钮时,Activity 发送回视频 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();

        }
    });
}

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这就是我开始第二个活动的方式但是它有什么问题?
    • 你确定,你真的要进入 onActivityResult 回调吗?如果是,那么您检查您是否真的进入 if 条件并可以调试 LINK 的值,否则您可以尝试将 URL 字符串直接放入 cueVideo 函数并查看视频是否正常工作。如果是,则意味着您的链接值返回 null 或不正确的值。请检查并告诉我
    • 我把URL字符串直接放到cueVideo函数里面,还是一样,不行:(
    • 那么我需要检查一下 cueVideo 函数是如何工作的,并确保或者你真的进入了这个回调?你能在 onActivityResult 回调中看到你正在打印的 toast 消息吗?
    • 你能检查一下它是否进入了 onInitializationSuccess 回调,似乎播放器上下文为空,这就是它没有播放视频的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多