得到VideoView中的MediaController的Play/Pause事件

在安卓开发中,使用VideoView播放视频时,我们有时候需要对视频的暂停播放事件进行控制,例如当我们点击暂停按钮时弹出一个广告等等。。这就需要我们得到这个暂停事件并进行后序代码操作。

原理很简单:编写一个继承自VideoView类的子类,重新VideoView的中的pause()和start()函数。废话不多说,直接看代码。

import android.content.Context;
import android.util.AttributeSet;
import android.widget.VideoView;

public class CustomVideoView extends VideoView {

    private PlayPauseListener mListener;

    public CustomVideoView(Context context) {
        super(context);
    }

    public CustomVideoView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomVideoView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void setPlayPauseListener(PlayPauseListener listener) {
        mListener = listener;
    }

    @Override
    public void pause() {
        super.pause();
        if (mListener != null) {
            mListener.onPause();
        }
    }

    @Override
    public void start() {
        super.start();
        if (mListener != null) {
            mListener.onPlay();
        }
    }

    public static interface PlayPauseListener {
        void onPlay();
        void onPause();
    }

}

上述代码中我们自定义了一个监听器PlayPauseListener,里面包含两个函数onPlay()和onPause(),这两个函数是我们在外面要调用的。然后我们重写pause()和start()函数,当视频暂停时pause()会自动执行,它调用了我们的onPause()。因此有onPause()中可以添加我们需要的操作。下面的代码说明了使用过程:

CustomVideoView cVideoView = (CustomVideoView) findViewById(R.id.custom_videoview);
cVideoView.setPlayPauseListener(new CustomVideoView.PlayPauseListener() {

    @Override
    public void onPlay() {
        System.out.println("Play!");//our needed process when the video is started
    }

    @Override
    public void onPause() {
        System.out.println("Pause!");//our needed process when the video is paused
    }
});

cVideoView.setMediaController(new MediaController(this));
cVideoView.setVideoURI(...);
// or
cVideoView.setVideoPath(...);
// Some other code below...

最后注意一下xml中的写法,就不能是<VideoView>了,应该是<package_name>.CustomVideoView。例如:example.test.CustomVideoView。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值