YouTubePlayerSupportFragment:“播放时出现问题”错误一段时间后

问题描述 投票:0回答:1

在三遍销毁并重新创建活动后出现此错误:

         "There was a problem while playing (Playback ID: ....) Tap to retry"  

以下是重现此问题的详细信息和步骤:

我的Android应用程式(Match4app)是一款纸牌游戏,可显示每张纸牌中的图像和视频。这些视频是使用YouTubePlayerSupportFragment展示的。在一副纸牌中,每张纸牌都是一个碎片。每次显示卡片时,片段的卡片都会使用其各自的youTubePlayerFragment.initialize方法创建YouTubePlayerSupportFragment的新实例:

youTubePlayerFragment.initialize( Constants.DEVELOPER_KEY,new YouTubePlayer.OnInitializedListener() {
        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
            if (!wasRestored) {

                YPlayer = player;                    
                YouTubePlayer.PlayerStyle style = YouTubePlayer.PlayerStyle.MINIMAL;
                YPlayer.setPlayerStyle(style);
                YPlayer.setFullscreen(false);                        
                YPlayer.loadVideo(videoIDStatic);                       

            }               
        }
        @Override
        public void onInitializationFailure(YouTubePlayer.Provider arg0, YouTubeInitializationResult arg1) {                
        }
    });

用户可以从同一卡座(活动)中的一张卡(片段)跳到另一张卡(片段),并且视频一直播放良好。用户最多可以观看30张卡(带有相应的视频)。每次从一张卡跳到另一张卡时,都会释放Youtubleplayer并使用此方法将其设置为null:

public void stopVideo(){
    if (YPlayer != null) {            
        YPlayer.release();
        YPlayer = null;
        if (!isAdded()) return;                                   
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.remove(youTubePlayerFragment).commit();
    }
}

[跳转到另一张卡片时,片段的卡片再次使用各自的youTubePlayerFragment.initialize方法创建YouTubePlayerSupportFragment的新实例。

现在,如果用户返回主菜单并且活动(平台)被销毁(在运行stopVideo()之后),则用户可以重新打开相同的活动并重复所有这些任务。但是,我有一个奇怪的问题:

  1. 公开活动
  2. 观看卡片上的视频->视频播放良好(您最多可以观看30个视频)
  3. 返回主菜单(即破坏活动)
  4. 重新打开活动
  5. 观看卡片上的视频->视频播放良好(您最多可以观看30个视频)
  6. 返回主菜单(即破坏活动)
  7. 重新打开活动
  8. 观看卡片上的视频->视频播放良好(您最多可以观看30个视频)
  9. 返回主菜单(即破坏活动)
  10. 重新打开活动
  11. 观看卡片视频->所有视频开始显示此消息:

     "There was a problem while playing (Playback ID: ....) Tap to retry"  
    

日志未显示任何相关消息。如果我的代码有任何问题,我将无法解释它的工作原理,直到步骤8。这似乎也与内存不足无关,因为在第2步,第5步和第8步中,我最多可以观看90个视频,而在每个步骤中只观看一个视频(2, 5和8)。但是,我仍然从内存的角度分析问题。当活动被销毁时,我正在运行以下命令以返回主菜单(来自onBackPressed()):

Intent intent = new Intent(this, MainActivity.class);
Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

此任务正在消耗/泄漏内存吗?

此线程中报告了类似问题,但没有解决方案:YouTubePlayerSupportFragment not playing Video

android-fragments youtube youtube-api android-youtube-api youtubeplayer
1个回答
0
投票

修复我的应用程序中的内存泄漏后,该错误不再显示。

© www.soinside.com 2019 - 2024. All rights reserved.