YouTubeStandalonePlayer打开带视频的窗口后,后退按钮无法正常工作

问题描述

如果在“活动”中,则打开窗口后,按“后退”按钮,它将关闭带有视频的窗口并打开“活动”(如预期的那样),但是如果再次单击,它将再次打开带有视频的窗口。然后,当您单击返回时,活动->视频->活动->视频…将循环播放。 如果从Fragment开始视频,则单击“上一步”后,视频将更新但不会关闭。 如何以编程方式关闭YouTubeStandalonePlayer播放窗口或使后退按钮正常工作?

我的活动

public class ShowYoutube extends AppCompatActivity {
    private static final int REQ_START_STANDALONE_PLAYER = 1;
    private static final int REQ_RESOLVE_SERVICE_MISSING = 2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_yoututbe2);
        String videoid=getIntent().getExtras().getString("linkYoutube");
        showVideo(videoid);
    }

    private void showVideo(String idVideo){
        Intent intent = YouTubeStandalonePlayer.createVideoIntent(this,Constants.DEVELOPER_KEY,idVideo,true,true);

        if (intent != null) {
            if (canResolveIntent(intent)) {
                startActivityForResult(intent,REQ_START_STANDALONE_PLAYER);
            } else {
                // Could not resolve the intent - must need to install or update the YouTube API service.
                YouTubeInitializationResult.SERVICE_MISSING.getErrorDialog(this,REQ_RESOLVE_SERVICE_MISSING).show();
            }
        }
    }

    private boolean canResolveIntent(Intent intent) {
        List<ResolveInfo> resolveInfo = getPackageManager().queryIntentActivities(intent,0);
        return resolveInfo != null && !resolveInfo.isEmpty();
    }

    @Override
    public void onActivityResult(int requestCode,int resultCode,Intent data) {
        super.onActivityResult(requestCode,resultCode,data);
        if (requestCode == REQ_START_STANDALONE_PLAYER && resultCode != RESULT_OK) {
            YouTubeInitializationResult errorReason = YouTubeStandalonePlayer.getReturnedInitializationResult(data);

            if (errorReason.isUserRecoverableError()) {
                errorReason.getErrorDialog(this,0).show();
            } else {
                //String errorMessage = String.format(getString(R.string.error_player),errorReason.toString());
                String errorMessage = getString(R.string.api_default_error)+" "+errorReason.toString();
                Toast.makeText(this,errorMessage,Toast.LENGTH_LONG).show();
            }
        }
        if (requestCode == REQ_START_STANDALONE_PLAYER && resultCode == RESULT_OK) {
        }
    }
}

感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)