相关疑难解决方法(0)

在列表视图中使用surfaceview播放视频

我有一个listview.list视图中的每个listitem包含一个surfaceview,一个imageview和按钮.最初,surfaceview的可见性将消失.只有imageview和按钮可见.

  1. 一旦用户点击图像视图或按钮,表面视图就可以看到媒体播放器被初始化,它将开始在表面视图上播放视频.当用户向上和向下滚动时,表面视图的可见性再次变化(消失).一次只能看到一个表面视图.

  2. 当用户触摸任何列表项时,它会检查是否已存在任何其他媒体播放器(如果存在),它将被释放,并且新的媒体播放器将使用新的surfaceview实例进行初始化.

这很好用.但问题是

释放现有的媒体播放器并初始化新的媒体播放器需要时间(主要在方法mediaplayer.prepareasyn()和mediaplayer.start()之间).如果点击listitem并慢慢移开我的手它工作正常...否则,如果它被非常快地点击它不播放视频只有surfaceview可见.

现行解决方案

我尝试在这两种方法之间应用postdelay它工作正常.我想知道这是否是这样做的有效方法.或者有没有其他方法可以实现更快的反应.

android listview surfaceview media-player

5
推荐指数
1
解决办法
1362
查看次数

水平ScrollView中的多个YouTubePlayerFragments - 所有播放器显示上次加载的视频

我想在Horizo​​ntal ScrollView中显示多个YouTube视频.为此,我正在动态添加YouTubePlayerFragments.这是我的代码片段:

 //set videos

    int count = 0;
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();

    for (final Video video : mVideos) {

        //create an instance of a video fragment
        final VideoFragment fragment = new VideoFragment();// VideoFragment extends YouTubePlayerFragment
        Bundle bundle = new Bundle();
        if (null != mVideos && 0 < mVideos.size()) {
            bundle.putString(VideoFragment.KEY_VIDEO_KEY, video.getKey());
        }
        fragment.setArguments(bundle);

        FrameLayout frameLayout = new FrameLayout(getActivity());
        frameLayout.setLayoutParams(new FrameLayout.LayoutParams(900, 500));
        frameLayout.setPadding(10, 0, 10, 0);
        frameLayout.setId(12345 + ++count);
        mLayoutTrailers.addView(frameLayout);//mLayoutTrailers is a LinearLayout inside my Horizontal ScrollView …
Run Code Online (Sandbox Code Playgroud)

android horizontalscrollview android-fragments android-youtube-api

3
推荐指数
1
解决办法
1683
查看次数