Mic*_*eap 8 android android-viewpager android-videoview
我有一个包含不同片段的viewpager,其中一个片段中有视频片段.如果我在播放视频时切换页面,那么即使我在不同的页面上也会重新播放.我尝试为ViewPager实现一个OnPageChangeListener,如下所示:
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if(position!=mAdapter.getCount()-1){
MultimediaFragment frag = (MultimediaFragment)mAdapter.getItem(position+1);
frag.onPageIsChanged();
}
if(position != 0){
MultimediaFragment frag = (MultimediaFragment)mAdapter.getItem(position-1);
frag.onPageIsChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
使用onPageIsChanged()作为我自己的方法,它试图告诉我的videoview属性停止并隐藏控件:
public void onPageIsChanged() {
if(mVideoView!=null){
if(mVideoView.isPlaying()){
mVideoView.stopPlayback();
}
mMedia.hide();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是mVideoView总是为空,即使它在后台播放也是如此.此视频视图是在片段的OnCreateView方法上创建的,但在片段被销毁之前,它是否应保持设置为我的mVideoView字段?
Gab*_*tin 10
我通过覆盖方法解决了这个问题:
void setUserVisibleHint(boolean isVisibleToUser)
Run Code Online (Sandbox Code Playgroud)
不知道这是不是正确的方法.
你必须在你播放视频的片段中覆盖setUserVisibleHint方法.
public void setUserVisibleHint(boolean isVisibleToUser)
{
super.setUserVisibleHint(isVisibleToUser);
if (this.isVisible())
{
if (!isVisibleToUser) // If we are becoming invisible, then...
{
//pause or stop video
}
if (isVisibleToUser) // If we are becoming visible, then...
{
//play your video
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8390 次 |
| 最近记录: |