YouTubeAndroidPlayerAPI中的Android问题



YouTubeAndroidPlayerAPI中面临问题,这是我面临的错误

W/YouTubeAndroidPlayerAPI: Forcefully created overlay:acqm@cada64 
helper:Lazy@241a4cd view:null status: ....... {...}

注意 - 如果用户输入视频工作正常,我有两个活动类FirstActivity。如果用户在 SecondActivity 中将活动从FirstActivity更改为SecondActivity,则视频工作正常,如果用户使用系统后退按钮导航到 FirstActivity 视频无法连续加载,但视频无法播放。(新增图片供参考(

如果用户像这样单击按钮,则加载相同的活动(在我的情况下,第一个活动和第二个活动是相同的,只是为了在常设目的下解释两个活动(

 Intent intent = new Intent(YoutubeVideoPlay.this, YoutubeVideoPlay.class);
    startActivity(intent);

这是我正在使用的代码示例

第一活动.java

    public class FirstActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
    public static final String DEVELOPER_KEY = "xxxxxxxxxxxxxxxxxxx";
    private static final int RECOVERY_DIALOG_REQUEST = 1;
    private String url = "xxxxxxxxxxxxxxxxxxxx";
    private String VIDEO_ID;
    private YouTubePlayerFragment myYouTubePlayerFragment;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_youtube);
        myYouTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtubeplayerfragment);
        myYouTubePlayerFragment.initialize(DEVELOPER_KEY, this);
        VIDEO_ID = getYoutubeVideoId(url);
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FirstActivity .this, FirstActivity .class);
                startActivity(intent);
            }
        });
    }
    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
        if (errorReason.isUserRecoverableError()) {
            errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
        } else {
            String errorMessage = String.format("There was an error initializing the YouTubePlayer (%1$s)",
                    errorReason.toString());
            Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
        }
    }
    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
        if (!wasRestored) {
            player.cueVideo(VIDEO_ID);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RECOVERY_DIALOG_REQUEST) {
            // Retry initialization if user performed a recovery action
            getYouTubePlayerProvider().initialize(DEVELOPER_KEY, this);
        }
    }
    protected YouTubePlayer.Provider getYouTubePlayerProvider() {
        return (YouTubePlayerView) findViewById(R.id.youtubeplayerfragment);
    }
    public static String getYoutubeVideoId(String youtubeUrl) {
        String video_id = "";
        if (youtubeUrl != null && youtubeUrl.trim().length() > 0 && youtubeUrl.startsWith("http")) {
            String expression = "^.*((youtu.be" + "\/)" + "|(v\/)|(\/u\/w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*"; // var regExp = /^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/;
            CharSequence input = youtubeUrl;
            Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(input);
            if (matcher.matches()) {
                String groupIndex1 = matcher.group(7);
                if (groupIndex1 != null && groupIndex1.length() == 11)
                    video_id = groupIndex1;
            }
        }
        return video_id;
    }
}

是的,YouTube主单全球播放器,如果您启动新播放器,以前的播放器将自动发布。

因此,您需要在恢复活动时再次重新启动YouTube播放器

最新更新