tcking / GiraffePlayer2

out of the box android video player(support lazy load, ListView/RecyclerView and hight performance)
Apache License 2.0
377 stars 110 forks source link

在播放界面,切换到新的activity,在返回播放界面,不能继续播放 #81

Closed lzj509649444 closed 6 years ago

lzj509649444 commented 6 years ago
  1. 返回到播放界面,播放器的状态是STATE_PREPARING,调用start不能继续播放 public static final int STATE_PREPARING = 1;

  2. 返回播放界面,播放器也不显示了,下面是gif图:

3 -27-2018 11-22-09

tcking commented 6 years ago

gif太小了,看不清操作的步骤,是从什么地方返回到播放界面?

lzj509649444 commented 6 years ago

@tcking 视频下面的TT是一个Button,点击TT打开第二个Activity,第二个Activity只有一个Back按钮,点击执行onBackPressed()

tcking commented 6 years ago

demo 里的 “play in standalone player” 就是这个场景,看是否有问题呢

lzj509649444 commented 6 years ago

@tcking demo里的 “play in standalone player” 视频下面,增加一个按钮,点击该按钮打开其他Activity,然后按后退键返回standalone player界面,视频就会出问题。播放器消失,不能继续播放。我的是这个场景,因为要点击视频进行收藏,会打开一个新的Activity,输入收藏的内容,标签等等信息,然后把这个Activity关闭返回到播放界面,就不能继续播放了,下面是测试代码

第一个Activity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.xxingqu.www.xiaoxingqu_android.TActivity">

    <com.xxingqu.www.utilities.ui.VideoPlayer  //取消了initMediaController();
        android:id="@+id/videoPlayer"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        tools:targetApi="ice_cream_sandwich">
    </com.xxingqu.www.utilities.ui.VideoPlayer>

   <Button  点击打开新的Activity
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TT"/>

</LinearLayout>

public class TActivity extends AppCompatActivity {

    public static final String TAG = TActivity.class.getName();

    @BindView(R.id.videoPlayer)VideoPlayer videoPlayer;

    @OnClick(R.id.btn) void btnClick() {
        AndroidUtility.openActivity(this,TTActivity.class);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_t);
        ButterKnife.bind(this);

        setupViews();
    }

    private void setupViews() {
        String videoUrl = "http://oxosdzi3g.bkt.clouddn.com/video/2018/FqTBf7LppwgoobKHb0PCJpRfzuHZ";

        videoPlayer.getVideoInfo().setAspectRatio(VideoInfo.AR_ASPECT_FILL_PARENT);
        videoPlayer.getVideoInfo().setCurrentVideoAsCover(false);
        videoPlayer.getVideoInfo().setLooping(true);
        videoPlayer.setVideoPath(videoUrl)
                .setFingerprint(1);
        videoPlayer.getPlayer().start();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }
}

第二个Activity,布局里面只有一个backBtn按钮

public class TTActivity extends AppCompatActivity {

    @OnClick(R.id.backBtn) void backBtnClick() {
        onBackPressed();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tt);
        ButterKnife.bind(this);
    }
}
lzj509649444 commented 6 years ago

@tcking 看下面gif图,点击喜欢,打开新的Activity,然后点击取消,返回当前播放列表,列表是page enable

3 -30-2018 18-25-53

lzj509649444 commented 6 years ago

@tcking 能帮忙解看下这个问题吗,由于我现在是一个人同时开发ios和安卓,暂时腾不出时间来找问题,安卓主要就这个问题了,ios和安卓目前还有一个分享功能要做,然后是服务端要部署测试一下,就能上线了。

ivanstang commented 6 years ago

这个问题的原因应该是GiraffePlayer2绑定到了所有父、子Activity,子Activity的Destroy,会引起GiraffePlayer2的release,导致父Activity的播放无法继续。

lzj509649444 commented 6 years ago

@ivanstang 有解决方法吗?

ivanstang commented 6 years ago

作者已经解决这个问题了啊 见issuee #88

lzj509649444 commented 6 years ago

@ivanstang 谢谢,可以继续播放了